1. Trang chủ
  2. » Giáo Dục - Đào Tạo

tiểu luận cuối kì học phần học máy i thuật toán di truyền

41 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ứng với các bài toán tối ưu và phân loại+ Thư mục share : chứa tệp Usage Code.txt nhằm hướng dẫn đọc giả, giáo viên chấm thi cách sử dụng các mã code ở thư mục srcCodeNội dung đã đạt đượ

Trang 1

TRƯỜNG ĐẠI HỌC QUY NHƠNKHOA TOÁN VÀ THỐNG KÊ

BÀI TIỂU LUẬN CUỐI KÌHỌC PHẦN: HỌC MÁY I

THUẬT TOÁN DI TRUYỀN

NHÓM 5 – LỚP TUDK44

Các thành viên nhóm 5 :

Trà Trần Quý Bình

Trần Thị Huyền Trang Trương Bích Thảo

Lê Thị Thúy Trâm Trần Khánh Duyên

Trang 2

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG 1 : LÝ THUYẾT THUẬT TOÁN DI TRUYỀN 2

1.1 ĐỘNG LỰC 2

1.2 THUẬT TOÁN DI TRUYỀN 3

1.2.1 BIỂU DIỄN GIẢ THUYẾT 4

1.2.2 TOÁN TỬ DI TRUYỀN 5

1.2.3 HÀM FITNESS VÀ LỰA CHỌN 7

1.3 VÍ DỤ MINH HỌA 8

1.3.1 MỞ RỘNG 9

1.4 TÌM KIẾM KHÔNG GIAN GIẢ THUYẾT 11

1.4.1 TIẾN HÓA QUẦN THỂ VÀ ĐỊNH LÝ SCHEMA 11

1.5 LẬP TRÌNH DI TRUYỀN 14

1.5.1 BIỂU DIỄN CHƯƠNG TRÌNH 14

1.5.2 VÍ DỤ MINH HỌA 15

1.5.3 NHẬN XÉT VỀ LẬP TRÌNH DI TRUYỀN 17

1.6 CÁC MÔ HÌNH TIẾN HÓA VÀ HỌC TẬP 18

1.6.1 TIẾN HÓA LAMARCKIAN 18

1.6.2 HIỆU ỨNG BALDWIN 18

1.7 SONG SONG HÓA TOÁN THUẬT DI TRUYỀN 19

BÀI TẬP 20

CHƯƠNG 2 :TRIỂN KHAI HỆ THỐNG GABIL 21

2.1 BÀI TOÁN TÌM GIÁ TRỊ LỚN NHẤT HÀM SỐ 21

2.1.1 THUẬT TOÁN 21

2.1.2 TRIỂN KHAI BẰNG CODE 22

2.2 TRIỂN KHAI HỆ THỐNG GABIL 24

2.2.1 XÂY DỰNG THUẬT TOÁN (BÀI TẬP 1.1) 24

2.2.2 TRIỂN KHAI BẰNG CODE (BÀI TẬP 1.2) 26

CHƯƠNG 3 : MỞ RỘNG 33

3.1 BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU 33

3.1.1 GIỚI THIỆU BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU 33

3.1.2 TẬP PARETO 33

3.2 THUẬT TOÁN SEAMO 34

3.3 TRIỂN KHAI THUẬT TOÁN SEAMO 35

3.3.1 BÀI TOÁN CÁI TÚI (KNAPSACK) 35

3.3.2 TRIỂN KHAI BẰNG CODE 35

Trang 3

MỞ ĐẦU

Sau quãng thời gian cố gắng tìm tòi, học hỏi, cùng nhau thảo luận, chúng tôi đã hoàn thành bài tiểu luận cuối kì cho học phần Học Máy 1 và lưu trữ trong file đóng gói

222101036201_Group_5.zip bao gồm một số thành phần chính sau :

+ Tệp chính Report.pdf : chứa toàn bộ nội dung bài tiểu luận

+ Thư mục srcReport : chứa các tệp nguồn dùng để sinh ra tệp Report.pdf đó là tệp word

source_Report.docx cùng với các tệp ảnh (.png) được lấy trực tiếp hoặc vẽ lại từ các hình ảnh có sẵn

trong chương 9, sách Machine Learning của Tom Mitchell, ví dụ : Hình 1.1.png , ….

+ Thư mục srcCode : chứa ba mã code python lưu trữ dưới dạng tệp text (.txt) nhằm triển khai

thuật toán di truyền ở các phần 2.1, 2.2 và 3.3, mô phỏng cho các hệ thống GABIL, SEAMO, ứng với các bài toán tối ưu và phân loại

+ Thư mục share : chứa tệp Usage Code.txt nhằm hướng dẫn đọc giả, giáo viên chấm thi cách sử dụng các mã code ở thư mục srcCode

Nội dung đã đạt được trình bày ở tệp Report.pdf bao gồm các ý chính sau :

+ Chương 1 đã sơ lược được lý thuyết liên quan đến họ các thuật toán di truyền bao gồm các nộidung chính sau : động lực của thuật toán di truyền, giới thiệu về thuật toán, cách hoạt động, mô tả các hoạt động cần thiết cho thuật toán như biểu diễn giả thuyết, thực hiện toán tử di truyền, tiêu chí lựa chọn, xác định hàm phù hợp, sau đó trình bày về việc tìm kiếm giả thuyết, định lý schema mà mởrộng đến các biến thể của thuật toán di truyền như lập trình di truyền và cách hoạt động của nó, đưa ra các mô hình tiến hóa và học tập liên quan, giới thiệu sơ về song song hóa thuật toán di truyền Tất cả các nội dung này đều được tìm hiểu, trình bày lại từ nguồn tham khảo là chương 9 : Genetic Algorithms trong sách Machine Learning của Tom MitChell.

+ Chương 2 bao gồm hai ví dụ triển khai thuật toán di truyền vào việc giải các bài toán cụ thể, viết code nhằm chạy chương trình chứng thực với bài toán đầu tiên thuộc dạng toán tối ưu hàm, và bài toán thứ hai là bài toán phân loại “PlayTennis” hay được sử dụng làm ví dụ ở các thuật toán học máy, và được triển khai bằng hệ thống GABIL Tuy nhiên, mã code triển khai hệ thống GABIL cho bài toán “PlayTennis”chỉ nhằm ý nghĩa mô tả lại cách hoạt động của GABIL, chưa có độ chính xác cao để đưa vào thực tế

+ Chương 3 là phần mở rộng của thuật toán di truyền, lấy chủ đề là giải thuật di truyền đa mục tiêu nhằm giải quyết các bài toán tối ưu đa mục tiêu hay gặp trong cuộc sống, triển khai bằng code python thuật toán SEAMO cho bài toán cái túi (knapsack) khá phổ biến ở các giáo trình thuật toán và học máy nhằm thấy được ý nghĩa và tính hiệu quả của giải thuật di truyền đa mục tiêu Thuật toánSEAMO ở đây được tham khảo từ luận văn thạc sĩ công nghệ thông tin của Trần Hải Thanh, trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Nếu các bạn muốn tham khảo, các bạn có thể truy cập vào liên kết sau : https://repository.vnu.edu.vn/handle/VNU_123/43364

Tuy nhiên, bài tiểu luận trên vẫn còn cần hoàn thiện một số nội dung như tìm hiểu sâu hơn về các mở rộng của thuật toán di truyền như các hình thức song song hóa, hay kết hợp thuật toán di truyền với các phương pháp khác Bên cạnh đó, còn cần cố gắng hoàn chỉnh các code python triển khai thuật toán sao cho giảm thiểu được mọi rủi ro và có độ chính xác cao, có ý nghĩa trong thực tế.

Bảng mô tả mức độ đóng góp của từng thành viên :

1 Trà Trần Quý Bình Viết code, tìm hiểu và trình bày chương 3, phần mở rộng2 Trần Thị Huyền Trang Tìm hiểu và trình bày chương 1 từ phần 1.1 đến 1.4

3 Trương Bích Thảo Dịch sách tham khảo Machine Learning của Tom Mitchell, vẽ lại

các hình ảnh minh họa, hoàn thiện tệp source_Report.pdf

4 Lê Thị Thúy Trâm Tìm hiểu và trình bày chương 1 từ phần 1.5 đến hết chương 15 Trần Khánh Duyên Tìm hiểu và trình bày các thuật toán chương 2, kiểm tra code.

Trang 4

CHƯƠNG 1 : LÝ THUYẾT THUẬT TOÁN DI TRUYỀN

Thuật toán di truyền cung cấp một phương pháp học dựa trên mô phỏng quá trình tiến hóa Cácgiả định thường được mô tả bằng chuỗi bit, có ý nghĩa tùy thuộc vào ứng dụng, mặc dù giả địnhcũng có thể được mô tả bằng biểu thức ký hiệu hoặc thậm chí là các chương trình máy tính Quátrình tìm kiếm giả định phù hợp bắt đầu với một quần thể, hoặc tập hợp, các giả định ban đầu Cácthành viên trong quần thể hiện tại sinh ra thế hệ tiếp theo bằng các phép toán như đột biến ngẫunhiên và lai chéo giữa các giả định, được mô phỏng theo các quy trình trong tiến hóa sinh học Tạimỗi bước, các giả định trong quần thể hiện tại được đánh giá dựa trên một độ đo hiệu quả nhất định,với những giả định có hiệu quả cao nhất được chọn theo xác suất làm cơ sở để tạo ra thế hệ tiếp theo.Thuật toán di truyền đã được áp dụng thành công trong nhiều nhiệm vụ học tập và các vấn đề tối ưuhóa khác Ví dụ, chúng đã được sử dụng để học hệ thống các quy tắc để điều khiển robot, tối ưu hóacấu trúc và thông số học của mạng thần kinh nhân tạo Chương này bao gồm cả thuật toán di truyền,trong đó giả định thường được mô tả bằng chuỗi bit, và lập trình di truyền, trong đó giả định đượcmô tả bằng các chương trình máy tính.

Thuật toán di truyền (Genetic Algorithms - GAs) cung cấp một phương pháp học lấy cảm hứngtừ sự tương tự với quá trình tiến hóa trong sinh học Thay vì tìm kiếm từ các giả thuyết tổng quát đếncụ thể, hoặc từ đơn giản đến phức tạp, GAs tạo ra các giả thuyết kế tiếp bằng cách lặp đi lặp lại quátrình đột biến và ghép nối các phần của những giả thuyết tốt nhất hiện tại Ở mỗi bước, một tập hợpcác giả thuyết gọi là quần thể hiện tại được cập nhật bằng cách thay thế một phần tỷ lệ của quần thểbằng các giả thuyết con tạo bởi quá trình đột biến và lai chéo các giả thuyết hiện tại tốt nhất Quátrình này tạo thành một phương pháp tìm kiếm và kiểm tra theo hàm đánh giá của các giả thuyết,trong đó các biến thể của các giả thuyết hiện tại tốt nhất có khả năng được xem xét tiếp theo nhất Sựphổ biến của thuật toán di truyền (GAs) được thúc đẩy bởi một số yếu tố bao gồm:

 Tiến hóa được biết đến là một phương pháp thành công và mạnh mẽ để thích nghi trong cáchệ thống sinh học.

 GAs có thể khám phá các không gian giả thuyết chứa các phần tương tác phức tạp, trong đótác động của mỗi phần lên độ phù hợp tổng thể của giả thuyết có thể khó mô hình hóa.

 Các thuật toán di truyền dễ dàng được song song hóa (chia thành các phần nhỏ, thực hiệnsong song trên nhiều bộ xử lý đồng thời) và có thể tận dụng lợi ích từ việc giảm chi phí củaphần cứng máy tính có hiệu suất cao, giúp xử lí các bài toán lớn và phức tạp một cách hiệuquả hơn.

Chương này mô tả phương pháp thuật toán di truyền, minh họa cách sử dụng nó và xem xét bảnchất của quá trình tìm kiếm không gian giả thuyết Chúng tôi cũng mô tả một biến thể gọi là lập trìnhdi truyền, trong đó toàn bộ chương trình máy tính được tiến hóa theo các tiêu chí về hiệu suất Cácthuật toán di truyền và lập trình di truyền là hai trong số các phương pháp phổ biến trong lĩnh vựcthường được gọi là tính toán tiến hóa(evolutionary computation) Trong phần cuối, chúng tôi đề cậpđến một số chủ đề được chọn lọc trong nghiên cứu về tiến hóa sinh học, bao gồm hiệu ứng Baldwin,mô tả một sự tương tác thú vị giữa khả năng học của cá thể đơn lẻ và tốc độ tiến hóa của toàn bộquần thể.

Trang 5

1.2THUẬT TOÁN DI TRUYỀN

Vấn đề được giải quyết bởi thuật toán di truyền (GAs) là tìm kiếm trong một không gian các giảthuyết ứng cử viên để xác định giả thuyết tốt nhất Trong GAs, ‘giả thuyết tốt nhất’ được xác định làgiả thuyết tối ưu hóa một thước đo số học đã được định nghĩa trước cho vấn đề cụ thể, được gọi làđộ phù hợp của giả thuyết Ví dụ, nếu nhiệm vụ học là xấp xỉ một hàm không xác định dựa trên cácví dụ huấn luyện về đầu vào và đầu ra, thì độ phù hợp có thể được định nghĩa là độ chính xác của giảthuyết trên dữ liệu huấn luyện đó Nếu nhiệm vụ là học một chiến lược chơi cờ, độ phù hợp có thểđược định nghĩa là số trận thắng khi chơi với những cá nhân khác trong quần thể hiện tại.

Mặc dù các biến thể khác nhau của các thuật toán di truyền có thể khác nhau về chi tiết, chúngthường chia sẻ cấu trúc sau: Thuật toán hoạt động bằng cách cập nhật lặp đi lặp lại một tập hợp cácgiả thuyết, gọi là quần thể Trong mỗi lần lặp, tất cả các thành viên trong quần thể được đánh giá dựatrên hàm đánh giá mức độ phù hợp Sau đó, một quần thể mới được tạo ra bằng cách lựa chọn theoxác suất các cá nhân tốt nhất từ quần thể hiện tại Một số cá nhân được lựa chọn được chuyển tiếpvào quần thể thế hệ tiếp theo nguyên vẹn Các cá nhân khác được sử dụng làm cơ sở để tạo ra cá thểcon mới bằng cách áp dụng các hoạt động di truyền như lai chéo và đột biến.

BẢNG 1.1

Một thuật toán di truyền mẫu Một quần thể chứa p giả thuyết được duy trì Trên mỗi vòng lặp, quầnthể kế cận PS được hình thành bằng cách chọn giả thuyết hiện tại theo xác suất dựa trên độ thích nghicủa chúng và bằng cách thêm các giả thuyết mới Các giả thuyết mới được tạo ra bằng cách áp dụngtoán tử lai chéo cho các cặp giả thuyết tốt nhất và bằng cách tạo ra đột biến một điểm đơn trong thếhệ giả thuyết kết quả Quá trình này được lặp lại cho đến khi tìm ra giả thuyết đạt độ thích nghi đủcao Các toán tử lai chéo và đột biến thông thường được định nghĩa trong bảng tiếp theo.

Một thuật toán di truyền tiêu biểu được mô tả trong Bảng 9.1 Các đầu vào cho thuật toán này

bao gồm hàm đánh giá độ phù hợp (Fitness) để xếp hạng các giả thuyết ứng viên, một ngưỡng xác

GA (Fitness, Fitness_threshold, p, r, m)

Fitness: Một hàm gán điểm đánh giá cho một giả thuyết đã cho.

Fitness_threshold: Một ngưỡng đánh giá xác định để xác định điều kiện kết thúc.p: Số lượng giả thuyết được bao gồm trong quần thể.

r: Tỷ lệ của quần thể sẽ được thay thế bằng quá trình Lai chéo ở mỗi bước.m: Tỷ lệ đột biến

Khởi tạo quần thể ban đầu: P Tạo p giả thuyết ngẫu nhiên

Đánh giá: Với mỗi giả thuyết h trong P, tính Fitness(h)

 Trong khi [ maxhFitness h( )]Fitness threshold_

Fitness hFitness h

2 Lai chéo : Lựa chọn

r p

cặp giả thuyết theo xác suất từ P, theo xác suất Pr(hi) đượctính ở trên Với mỗi cặp, h h1, 2 , tạo ra hai giả thuyết con bằng cách áp dụng toán tử

lai chéo Thêm tất cả các giả thuyết con vào PS.

3 Đột biến: Chọn m phần trăm thành viên của PS với xác suất đều nhau Đối với mỗithành viên, đảo ngược một bit được chọn ngẫu nhiên trong biểu diễn của nó.

4 Cập nhật: P  PS.

5 Đánh giá: Với mỗi giả thuyết h trong P, tính Fitness(h)

Trả về giả thuyết từ P có độ phù hợp cao nhất (giả thuyết được hàm Fitness gán điểmđánh giá cao nhất và lớn hơn ngưỡng đánh giá Fitness_threshold).

Trang 6

định đánh giá mức độ phù hợp chấp nhận được để kết thúc thuật toán, kích thước của quần thể được duy trì và các thông số xác định cách tạo ra các quần thể kế thừa: tỷ lệ của quần thể được thay thế bằng lai chéo ở mỗi thế hệ và tỷ lệ đột biến.

Lưu ý rằng trong thuật toán này, mỗi lần lặp qua vòng lặp chính tạo ra một thế hệ giả thuyết mớidựa trên quần thể hiện tại Đầu tiên, một số lượng nhất định các giả thuyết từ quần thể hiện tại được chọn để chuyển thẳng vào thế hệ tiếp theo Chúng được chọn theo xác suất, trong đó xác suất chọn giả thuyết hi được xác định bởi công thức :

1

( )Pr( )

( )

Fitness hh

Do đó,thuật toán di truyền này thực hiện một phương pháp tìm kiếm chùm (beam search) ngẫu nhiên, song song cho các giả thuyết có hiệu quả tốt theo hàm phù hợp Trong các phần tiếp theo, chúng tôi mô tả chi tiết hơn về biểu diễn của các giả thuyết và các toán tử di truyền được sử dụng trong thuật toán này.

1.2.1 BIỂU DIỄN GIẢ THUYẾT

Các giả thuyết trong GAs thường được biểu diễn bằng chuỗi bit để chúng có thể dễ dàng được thao tác bởi các toán tử di truyền như đột biến và lai chéo Các giả thuyết được biểu diễn bởi các chuỗi bit này có thể rất phức tạp Ví dụ, các tập hợp của các quy tắc nếu-thì(if-then) có thể dễ dàng được biểu diễn theo cách này bằng cách chọn một mã hóa của các quy tắc phân bổ các chuỗi con cụ thể cho mỗi điều kiện tiên quyết và hậu quả của quy tắc Các ví dụ về các đại diện quy tắc trong các hệ thống GA được mô tả bởi Holland (1986); Grefenstette (1988); và DeJong et al (1993)

Để xem cách mã hóa các quy tắc nếu-thì bằng chuỗi bit, trước tiên hãy xem xét cách chúng ta cóthể sử dụng một chuỗi bit để mô tả một ràng buộc về giá trị của một thuộc tính duy nhất Để chọn

một ví dụ, hãy xem xét thuộc tính Outlook, có thể nhận bất kỳ giá trị nào trong ba giá trị Sunny, Overcast hoặc Rain Một cách rõ ràng để biểu diễn một ràng buộc về Outlook là sử dụng một chuỗi

bit có độ dài ba, trong đó mỗi vị trí bit tương ứng với một trong ba giá trị có thể của nó Đặt 1 ở một vị trí nào đó cho biết thuộc tính được phép nhận giá trị tương ứng Ví dụ, chuỗi 010 biểu diễn ràng

buộc Outlook phải nhận giá trị thứ hai trong số này, tức là Outlook = Overcast Tương tự như vậy, chuỗi 011 biểu diễn ràng buộc tổng quát hơn cho phép Outlook có thể nhận hai giá trị hay ta có thể hiểu là (Outlook = Overcast Rain) Lưu ý 111 biểu diễn ràng buộc tổng quát nhất có thể, cho biết

chúng ta không quan tâm thuộc tính có thể nhận giá trị nào.

Với phương pháp biểu diễn ràng buộc cho một thuộc tính duy nhất, các liên kết của các ràng buộc trên nhiều thuộc tính có thể dễ dàng được biểu diễn bằng cách nối các chuỗi bit tương ứng Ví

dụ, xem xét một thuộc tính thứ hai, Wind, có thể nhận giá trị Strong hoặc Weak Một tiền điều kiện của quy tắc : (Outlook = Overcast Rain) (Wind = Strong) có thể được biểu diễn bằng chuỗi

bit có độ dài năm như sau:

Ràng buộc kết quả của quy tắc (như PlayTennis = yes) có thể được biểu diễn theo cách tương tự.

Vì vậy, một quy tắc hoàn chỉnh có thể được mô tả bằng cách nối các chuỗi bit mô tả các tiền điều

Trang 7

kiện của quy tắc, cùng với chuỗi bit mô tả ràng buộc kết quả của quy tắc Ví dụ, ta có quy tắc

IF Wind = Strong THEN PlayTennis = yes

được biểu diễn lại bởi chuỗi bit sau

Ở đây ba bit đầu tiên mô tả ràng buộc ‘không quan tâm’ đối với Outlook, hai bit tiếp theo mô tả ràng buộc đối với Wind và hai bit cuối cùng mô tả điều kiện kết quả của quy tắc (ở đây chúng ta giả sử PlayTennis có thể nhận các giá trị Yes hoặc No) Lưu ý rằng chuỗi bit biểu diễn quy tắc chứa một

chuỗi con cho mỗi thuộc tính trong không gian giả thuyết, ngay cả khi thuộc tính đó không bị ràng buộc bởi các điều kiện tiên quyết của quy tắc Điều này tạo ra một biểu diễn chuỗi bit có độ dài cố định cho các quy tắc, trong đó các chuỗi con ở các vị trí xác định mô tả các ràng buộc đối với các thuộc tính cụ thể Với biểu diễn cho các quy tắc đơn lẻ này, chúng ta có thể biểu diễn tập hợp các quy tắc bằng cách nối các biểu diễn chuỗi bit của các quy tắc riêng lẻ theo cách tương tự.

Khi thiết kế cách mã hóa chuỗi bit cho một không gian giả thuyết, việc sắp xếp để mỗi chuỗi bit hợp lệ đều có ý nghĩa là rất quan trọng Ví dụ, trong cách mã hóa quy tắc ở trên, chuỗi bit 111 10 11

biểu diễn một quy tắc mà phần kết quả của nó không giới hạn thuộc tính PlayTennis Nếu chúng ta

muốn tránh giả thuyết này, chúng ta có thể dùng cách mã hóa khác (ví dụ chỉ dùng một bit để biểu

diễn kết quả PlayTennis là Có hay Không), thay đổi cách hoạt động của thuật toán để tránh tạo ra

những chuỗi bit như vậy hoặc chỉ đơn giản là cho những chuỗi bit đó có điểm đánh giá độ phù hợp thấp.

Trong một số thuật toán di truyền, các giả thuyết được biểu diễn bằng cách dùng các ký hiệu thay vì chuỗi bit Ví dụ, trong phần 9.5 chúng ta sẽ nói về một thuật toán di truyền mà các giả thuyết được biểu diễn dưới dạng chương trình máy tính.’

1.2.2 TOÁN TỬ DI TRUYỀN

Quá trình sinh ra các thế hệ kế tiếp trong một thuật toán di truyền được xác định bởi một tập hợpcác toán tử kết hợp và đột biến các thành viên được chọn từ quần thể hiện tại Các toán tử thuật toán di truyền (GA) điển hình để thay đổi các giả định dạng bit được minh họa trong Bảng 9.1 Các toán tử này tương ứng với các phiên bản lý tưởng của các hoạt động di truyền được tìm thấy trong tiến

hóa sinh học Hai toán tử phổ biến nhất là lai chéo (crossover) và đột biến (mutation).

Toán tử lai chéo tạo ra hai con cái mới từ hai chuỗi cha mẹ, bằng cách sao chép các bit được

chọn từ mỗi cha mẹ Bit tại vị trí i trong mỗi con cái được sao chép từ bit tại vị trí i từ một trong hai cha mẹ Việc chọn cha mẹ nào đóng góp bit cho vị trí i được xác định bởi một chuỗi bổ sung được

gọi là mặt nạ lai chéo(crossover mask) Để minh họa, hãy xem toán tử lai chéo điểm đơn point crossover) ở đầu Bảng 9.2 Xét chuỗi con trên cùng trong trường hợp này Chuỗi con này lấy năm bit đầu tiên từ cha mẹ thứ nhất và sáu bit còn lại từ cha mẹ thứ hai, vì mặt nạ lai chéo 11111000000 xác định những lựa chọn này cho mỗi vị trí bit Chuỗi con thứ hai sử dụng cùng mặt nạ lai chéo, nhưng đảo ngược vai trò của hai cha mẹ Do đó, nó chứa các bit không được sử dụng bởi chuỗi con đầu tiên Trong lai chéo điểm đơn, mặt nạ lai chéo luôn được xây dựng sao cho nó bắt

(single-đầu bằng một chuỗi chứa n số 1 liên tiếp, tiếp theo là số số 0 cần thiết để hoàn thành chuỗi Điều nàydẫn đến chuỗi con trong đó n bit đầu tiên được đóng góp bởi một cha mẹ và các bit còn lại bởi cha

mẹ thứ hai Mỗi khi áp dụng toán tử lai chéo điểm đơn, điểm lai chéo n được chọn ngẫu nhiên và

mặt nạ lai chéo được tạo ra và áp dụng.

Trong phép lai chéo hai điểm(two-point crossover), chuỗi con được tạo ra bằng cách thay thế

các đoạn trung gian của một cha mẹ vào giữa chuỗi của cha mẹ thứ hai Nói cách khác, crossover mask là một chuỗi bắt đầu với n0 số 0, tiếp theo là một chuỗi liên tục gồm nl số 1, tiếp theo là số số 0 cần thiết để hoàn thành chuỗi Mỗi lần áp dụng phép lai chéo hai điểm, một mặt nạ được tạo ra bằng cách ngẫu nhiên chọn các số nguyên n0 và nl Ví dụ, trong ví dụ được hiển thị trong Bảng 9.2, chuỗi con được tạo ra bằng cách sử dụng một mặt nạ trong đó n0 = 2 và nl = 5 Một lần nữa, hai chuỗi con được tạo ra bằng cách hoán đổi vai trò của hai cha mẹ.

Phép lai chéo đồng nhất (uniform crossover) kết hợp các bit được lấy mẫu một cách đồng đều từ

Trang 8

hai cha mẹ, như được minh họa trong Bảng 9.2 Trong trường hợp này, mặt nạ lai chéo được tạo ranhư một chuỗi bit ngẫu nhiên, mỗi bit được chọn ngẫu nhiên và độc lập với các bit khác.

BẢNG 1.2 (Các mô hình ví dụ được vẽ lại từ bảng 9.2 sách Machine Learning của Tom Mitchell)

Các toán tử thông thường cho thuật toán di truyền Những toán tử này tạo ra các giả thuyết con củacác giả thuyết được biểu diễn bằng chuỗi bit Các toán tử lai chéo tạo ra hai chuỗi con từ hai cha mẹ,sử dụng mặt nạ lai chéo để xác định cha mẹ nào đóng góp những bit nào Toán tử đột biến tạo ra mộtchuỗi con từ một chuỗi cha mẹ bằng cách thay đổi giá trị của một bit được chọn ngẫu nhiên.

Ngoài các toán tử kết hợp tạo ra chuỗi con bằng cách kết hợp các phần của hai cha mẹ, một loạitoán tử thứ hai tạo ra chuỗi con từ một chuỗi cha mẹ đơn lẻ Cụ thể, toán tử đột biến tạo ra các thayđổi ngẫu nhiên nhỏ trong chuỗi bit bằng cách chọn một bit ngẫu nhiên và thay đổi giá trị của nó.Thường thì toán tử đột biến được thực hiện sau khi đã áp dụng toán tử lai chéo, như trong thuật toánmẫu của chúng ta trong Bảng 9.1.

Một số hệ thống GA sử dụng thêm các toán tử bổ sung, đặc biệt là các toán tử được tùy chỉnhcho phù hợp với phương pháp biểu diễn giả thiết cụ thể được sử dụng bởi hệ thống Ví dụ,Grefenstette et al (1991) mô tả một hệ thống học tập tập hợp các quy tắc để điều khiển robot Họ sửdụng toán tử đột biến và lai chéo, kết hợp với một toán tử để tạo ra các quy tắc chuyên biệt Janikow(1993) mô tả một hệ thống học tập tập hợp các quy tắc bằng cách sử dụng các toán tử tổng quát hóavà chuyên biệt các quy tắc theo nhiều hướng khác nhau (ví dụ: thay thế một cách rõ ràng điều kiệntrên một thuộc tính bằng ‘không quan tâm’).

Chuỗi cha mẹ Mặt nạ lai chéo Chuỗi conLai chéo điểm đơn :

Lai chéo hai điểm :

Lai chéo đồng nhất :

Đột biến điểm:

Trang 9

1.2.3 HÀM FITNESS VÀ LỰA CHỌN

Hàm fitness(đánh giá độ phù hợp) xác định tiêu chí để xếp hạng các giả thuyết tiềm năng và đểchọn chúng theo xác suất để chuyển vào thế hệ kế tiếp Nếu nhiệm vụ là học các quy tắc phân loại,thì hàm fitness thường có thành phần cho điểm độ chính xác phân loại của quy tắc trên một tập hợpcác ví dụ huấn luyện được cung cấp Thường thì các tiêu chí khác cũng có thể được bao gồm, như độphức tạp hoặc tổng quát của quy tắc Nói chung hơn, khi giả thuyết dạng chuỗi bit được diễn giải làmột thủ tục phức tạp (ví dụ: khi chuỗi bit đại diện cho một tập hợp các quy tắc if-then sẽ được kếthợp để điều khiển thiết bị robot), hàm fitness có thể đo lường hiệu suất tổng thể của quy trình kết quảthay vì hiệu suất của từng quy tắc riêng lẻ.

Trong thuật toán di truyền mẫu của chúng ta được biểu diễn trong Bảng 9.1, xác suất một giảthuyết sẽ được chọn được xác định bằng tỷ lệ giữa độ phù hợp của nó và độ phù hợp của các thànhviên khác trong quần thể hiện tại như được thể hiện trong Phương trình (9.1) Phương pháp này đôikhi được gọi là lựa chọn tỷ lệ phù hợp hoặc lựa chọn bánh xe quay số(roulette wheel) Các phương

pháp khác sử dụng độ phù hợp để chọn giả thuyết cũng đã được đề xuất Ví dụ, trong lựa chọn giải

đấu(tournament), hai giả thuyết được chọn ngẫu nhiên từ quần thể hiện tại Với một xác suất p được

xác định trước, giả thuyết thích hợp hơn trong hai giả thuyết này được chọn, và với xác suất (1 - p)

giả thuyết ít thích hợp hơn được chọn Lựa chọn giải đấu thường tạo ra một quần thể đa dạng hơn sovới lựa chọn tỷ lệ phù hợp (Goldberg và Deb 1991) Trong phương pháp khác được gọi là lựa chọn

hạng(rank selection), các giả thuyết trong quần thể hiện tại được sắp xếp theo thứ tự độ phù hợp.

Xác suất một giả thuyết sẽ được chọn sau đó tỉ lệ thuận với vị trí của nó trong danh sách đã được sắpxếp này, thay vì độ phù hợp của nó.

Trang 10

1.3 VÍ DỤ MINH HỌA

Một thuật toán di truyền có thể được coi là một phương pháp tối ưu hóa tổng quát, tìm kiếmtrong một không gian lớn các đối tượng ứng viên để tìm ra đối tượng có hiệu suất tốt nhất theo hàmđánh giá độ phù hợp (fitness function) Mặc dù không đảm bảo tìm ra đối tượng tối ưu, thuật toán ditruyền thường thành công trong việc tìm ra đối tượng có độ phù hợp cao Thuật toán di truyền đãđược áp dụng vào nhiều bài toán tối ưu hóa ngoài lĩnh vực học máy, bao gồm các bài toán như bố trímạch và lập lịch xưởng công việc Trong lĩnh vực học máy, chúng đã được áp dụng cả vào bài toánxấp xỉ hàm và các nhiệm vụ như chọn cấu trúc mạng cho hệ thống học mạng nơ-ron nhân tạo.

Để minh họa việc sử dụng thuật toán di truyền cho việc học khái niệm, chúng tôi tóm tắt ngắngọn hệ thống GABIL được mô tả bởi DeJong et al (1993) GABIL sử dụng thuật toán di truyền đểhọc các khái niệm boolean được biểu diễn bằng tập hợp rời rạc các mệnh đề quy tắc Trong các thínghiệm trên nhiều bài toán học khái niệm, GABIL cho kết quả tương đương với độ chính xác tổngquát của các thuật toán học khác như thuật toán học cây quyết định C4.5 và hệ thống học quy tắcAQ14 Các nhiệm vụ học trong nghiên cứu này bao gồm cả các nhiệm vụ học nhân tạo được thiết kếđể khám phá khả năng tổng quát của các hệ thống và vấn đề chẩn đoán ung thư vú trong thực tế.

Thuật toán được sử dụng bởi GABIL chính là thuật toán được mô tả trong Bảng 9.1 Trong cácthí nghiệm được báo cáo bởi DeJong et al (1993), tham số r, xác định tỷ lệ phần tử trong quần thểcha bị thay thế bởi phép lai chéo, được lấy là 0.6 Tham số m, xác định tỷ lệ đột biến, được lấy là0.001 Đây là các giá trị thường được sử dụng cho tham số này Kích thước quần thể p được thay đổitừ 100 đến 1000, tùy thuộc vào nhiệm vụ học cụ thể.

Phần khởi tạo cụ thể của thuật toán GA trong GABIL có thể được tóm tắt như sau:

 Biểu diễn Mỗi giả thiết trong GABIL tương ứng với một tập hợp rời rạc của các quy tắchợp dựa trên mệnh đề, được mã hóa như đã mô tả trong Phần 9.2.1 Cụ thể, không gian

giả thiết của tiền điều kiện quy tắc bao gồm một phép kết hợp (và) các ràng buộc trên một

tập hợp cố định các thuộc tính, như đã mô tả trong phần trước đó Để biểu diễn một tậphợp các quy tắc, các biểu diễn chuỗi bit của từng quy tắc được nối lại với nhau Để minhhọa, xem xét một không gian giả thiết trong đó tiền điều kiện của quy tắc là sự kết hợp (và) các ràng buộc trên hai thuộc tính boolean, a1 và a2 Điều kiện kết quả của quy tắcđược mô tả bằng một bit duy nhất cho biết giá trị dự đoán của thuộc tính mục tiêu c Dođó, giả thiết gồm hai quy tắc :

 Toán tử di truyền GABIL sử dụng toán tử đột biến tiêu chuẩn được mô tả trong Bảng 9.2,trong đó một bit duy nhất được chọn ngẫu nhiên và thay thế bằng bit đảo ngược của nó Toán tử lai chéo mà nó sử dụng là một phương pháp mở rộng khá tiêu chuẩn của toán tử

lai chéo hai điểm được mô tả trong Bảng 9.2 Cụ thể, để điều chỉnh chuỗi bit có độ dài

biến thiên mã hóa tập quy tắc và hạn chế hệ thống sao cho lai chéo chỉ xảy ra giữa các phần tương tự của chuỗi bit mã hóa các quy tắc, sử dụng phương pháp sau đây Để thực hiện một phép lai chéo trên hai cha mẹ, hai điểm lai chéo được chọn ngẫu nhiên đầu tiên trong chuỗi của cha mẹ thứ nhất Đặt d1 (d2) là khoảng cách từ điểm lai chéo trái nhất

Trang 11

(phải nhất) đến ranh giới quy tắc ngay bên trái của nó Các điểm lai chéo trong cha mẹ thứ hai được chọn ngẫu nhiên ngay bây giờ, tuân thủ ràng buộc rằng chúng phải có cùng giá trị dl và d2 Ví dụ, nếu hai chuỗi cha mẹ là

, 1,8 và 6,8 (với các cặp bit trên thì d1, d2 đối với chuỗi cha mẹ thứ hai cũng lần lượt bằng 1 và 3) Nếu cặp (1,3) được chọn,

 Hàm Fitness Sự phù hợp của mỗi tập quy tắc được giả định dựa trên độ chính xác phân loại của nó trên dữ liệu huấn luyện Cụ thể, hàm được sử dụng để đo lường sự phù hợp là

( ) ( ( ))

Fitness hcorrect h

trong đó correct(h) là tỷ lệ phần trăm của tất cả các ví dụ huấn luyện được phân loại đúng

bởi giả thuyết h

Trong các thí nghiệm so sánh hành động của GABIL với các thuật toán học cây quyết định như C4.5 và ID5R, cũng như thuật toán học quy tắc AQ14, DeJong et al (1993) báo cáo kết quả tương đối tương đồng giữa các hệ thống này khi được kiểm tra trên nhiều bài toán học khác nhau Ví dụ, trên một tập hợp gồm 12 bài toán tổng hợp, GABIL đạt được độ chính xác trung bình trong việc tổngquát hóa là 92,1%, trong khi hiệu suất của các hệ thống khác dao động từ 91,2% đến 96,6%.

1.3.1 MỞ RỘNG

DeJong et al (1993) cũng khám phá hai phần mở rộng thú vị cho thiết kế cơ bản của GABIL Trong một loạt thí nghiệm, họ khám phá việc thêm hai toán tử di truyền mới được thúc đẩy bởi các toán tử tổng quát hóa thông thường trong nhiều phương pháp học biểu tượng Toán tử đầu tiên,

AddAlternative, tổng quát hóa ràng buộc trên một thuộc tính cụ thể bằng cách thay đổi giá trị 0 thành

1 trong đoạn con tương ứng với thuộc tính đó Ví dụ, nếu ràng buộc trên một thuộc tính được biểu

Trang 12

diễn bằng chuỗi 10010, toán tử này có thể thay đổi thành 10110 Toán tử này được áp dụng với xác

suất 0.01 cho các thành viên được chọn trong quần thể ở mỗi thế hệ Toán tử thứ hai, DropCondition

, thực hiện một bước tổng quát hóa mạnh hơn, bằng cách thay thế tất cả các bit cho một thuộc tính cụ

thể bằng 1 Toán tử này tương ứng với việc tổng quát hóa quy tắc bằng cách bỏ hoàn toàn ràng buộc trên thuộc tính và được áp dụng ở mỗi thế hệ với xác suất 0.6 Các tác giả báo cáo rằng hệ thống được cải tiến này đạt được hiệu suất trung bình là 95.2% trên tập hợp các nhiệm vụ học tổng hợp nêutrên, so với 92.1% cho thuật toán di truyền cơ bản.

Trong thí nghiệm trên, hai toán tử mới được áp dụng với cùng xác suất cho mỗi giả thuyết trong quần thể ở mỗi thế hệ Trong một thí nghiệm thứ hai, biểu diễn chuỗi bit cho các giả thuyết được mởrộng để bao gồm hai bit xác định xem toán tử nào có thể được áp dụng cho giả thuyết Trong biểu diễn mở rộng này, chuỗi bit cho một giả thuyết tập quy tắc điển hình sẽ là

Trang 13

1.4 TÌM KIẾM KHÔNG GIAN GIẢ THUYẾT

Như đã được minh họa ở trên, thuật toán di truyền sử dụng phương pháp tìm kiếm chùm (beam search) ngẫu nhiên để tìm kiếm một giả thuyết có độ phù hợp tối đa Phương pháp tìm kiếm này khá khác biệt so với các phương pháp học khác mà chúng ta đã xem xét trong cuốn sách này Để so sánh việc tìm kiếm không gian giả thuyết của GAs với phương pháp truyền ngược mạng nơ-ron

(BACKPROPAGATION), ví dụ, phương pháp tìm kiếm hạ dốc đạo hàm (gradient descent) trong BACKPROPAGATION di chuyển một cách mượt mà từ một giả thuyết sang một giả thuyết mới rất tương tự Ngược lại, phương pháp tìm kiếm GA có thể di chuyển một cách đột ngột hơn, thay thế một giả thuyết cha bằng một giả thuyết con có thể khác biệt hoàn toàn so với cha Lưu ý rằng phương pháp tìm kiếm GA do đó mà ít có khả năng rơi vào điểm tối ưu cục bộ mà có thể gây khó khăn cho các phương pháp gradient descent.

Một khó khăn thực tế trong một số ứng dụng GA là vấn đề lấn át (crowding) Lấn át là hiện

tượng trong đó một cá thể có độ phù hợp cao hơn các cá thể khác trong quần thể nhanh chóng sinh sản, dẫn đến việc các bản sao của cá thể này và các cá thể tương tự chiếm đa số trong quần thể Tác động tiêu cực của lấn át là giảm đa dạng của quần thể, từ đó làm chậm tiến trình tiếp theo của GA Có một số chiến lược đã được khám phá để giảm lấn át Một cách tiếp cận là thay đổi hàm chọn lọc, sử dụng tiêu chí như chọn lọc qua giải đấu (tournament selection) hoặc chọn lọc theo xếp hạng (rankselection) thay vì chọn lọc bằng cách chọn lọc bánh xe quay số theo tỉ lệ độ phù hợp (fitness

proportionate roulette wheel selection) Một chiến lược liên quan là ‘chia sẻ độ phù hợp’ (fitness sharing), trong đó độ phù hợp đo được của một cá thể bị giảm bớt bởi sự hiện diện của các cá thể tương tự khác trong quần thể Một phương pháp thứ ba là hạn chế loại cá thể được phép tái kết hợp để tạo ra con cháu Ví dụ, bằng cách chỉ cho phép các cá thể tương tự nhau nhất tái kết hợp, chúng tacó thể khuyến khích hình thành các nhóm cá thể tương tự hoặc nhiều ‘phân loài’ trong quần thể Mộtphương pháp liên quan là phân bố không gian cá thể và chỉ cho phép các cá thể gần nhau tái kết hợp.Nhiều kỹ thuật này được lấy cảm hứng từ sự tương tự với quá trình tiến hóa sinh học.

1.4.1 TIẾN HÓA QUẦN THỂ VÀ ĐỊNH LÝ SCHEMA

Thật thú vị khi hỏi liệu có thể mô tả một cách toán học quá trình tiến hóa của quần thể trong thuật toán di truyền hay không Định lý schema của Holland (1975) cung cấp một mô phỏng như vậy Nó dựa trên khái niệm về schema, tức là các mẫu mô tả các tập hợp chuỗi bit Cụ thể, một schema là một chuỗi bất kỳ được tạo thành từ các ký tự 0, 1 và ‘*’ Mỗi schema đại diện cho tập hợpcác chuỗi bit chứa các số 0 và 1 đã được chỉ định, trong đó mỗi ‘*’ được hiểu là ‘không quan tâm’ Ví dụ, schema 0*10 đại diện cho tập hợp các chuỗi bit bao gồm chính xác hai chuỗi 0010 và 0110.

Một chuỗi bit cụ thể có thể được coi là một đại diện cho mỗi schema khác nhau mà nó phù hợp Ví dụ, chuỗi bit 0010 có thể được coi là một đại diện cho 24 schema riêng biệt bao gồm 00**, 0*10, ****, … Tương tự, một quần thể các chuỗi bit có thể được xem như là tập hợp các schema mà nó đại diện và số lượng cá thể liên quan đến mỗi schema này.

Định lý schema mô tả sự tiến hóa của quần thể trong một thuật toán di truyền dựa trên số lượng

các trường hợp đại diện cho mỗi schema Cho m(s,t) là số lượng các trường hợp của schema s trong

quần thể tại thời điểm t (tức là trong thế hệ thứ t) Định lý schema mô tả giá trị trung bình dự kiến của m(s,t + 1) dựa trên m(s,t) và các thuộc tính khác của schema, quần thể và các tham số của thuật toán GA.

Sự phát triển của quần thể trong GA phụ thuộc vào các bước lựa chọn, tái kết hợp và đột biến

Hãy bắt đầu bằng việc chỉ xem xét tác động của bước lựa chọn Đặt f(h) là độ phù hợp của chuỗi bit

cá nhân h và ( )ft là độ phù hợp trung bình của tất cả các cá nhân trong quần thể tại thời điểm t Cho

n là tổng số cá nhân trong quần thể Cho h s pt, tức là cá nhân h là đại diện của schema s và là

Trang 14

thành viên của quần thể tại thời điểm t Cuối cùng, đặt uˆ( , )s t là độ phù hợp trung bình của các

trường hợp của schema s trong quần thể tại thời điểm t.

Chúng ta quan tâm đến việc tính giá trị kỳ vọng của m(s, t + l), được ký hiệu là E[m(s, t + l)] Chúng ta có thể tính E[m(s, t + l)] bằng cách sử dụng phân phối xác suất cho quá trình lựa chọn được cho trong Công thức (9.1), có thể được biểu diễn lại bằng thuật ngữ hiện tại như sau:

1( )Pr( )

( )( )

( )

f hh

f hf hnf t

( )Pr()

( )

h s p

u s tm s tnf t

f hh s

( )ˆ( , )

( , )t

h s p f hu s t

m s t

 

Phương trình (9.2) cung cấp xác suất rằng một giả thuyết duy nhất được chọn bởi GA sẽ là một trường hợp của schema s Do đó, kỳ vọng cho số lượng trường hợp của s từ n bước lựa chọn độc lập tạo ra toàn bộ thế hệ mới chỉ đơn giản là n nhân với xác suất này.

E[m(s,t + 1)] =

ˆ( , ) ( , )( )

u s tm s t

f t (9.3)

Phương trình (9.3) xác định rằng số lượng kỳ vọng các trường hợp của schema s ở thế hệ t + 1 tỉ lệ thuận với sự trung bình độ phù hợp uˆ( , )s t của các trường hợp của schema này tại thời điểm t và tỉ lệ

nghịch với trung bình độ phù hợp ( )ft của tất cả các thành viên trong quần thể tại thời điểm t Do

đó, chúng ta có thể mong đợi các schema với độ phù hợp trung bình vượt trội sẽ được thể hiện với tần suất tăng dần qua các thế hệ tiếp theo Nếu chúng ta xem GA như là một quá trình tìm kiếm songsong ảo qua không gian các schema có thể có, cùng với quá trình tìm kiếm song song thực tế qua không gian các cá thể, thì phương trình (9.3) cho thấy rằng các schema có độ thích nghi cao hơn sẽ ngày càng có ảnh hưởng lớn hơn theo thời gian.

Trong khi phân tích ở trên chỉ xem xét bước chọn lọc của GA, thì các bước lai chéo và đột biến cũng cần được xem xét Định lý schema chỉ xem xét khả năng ảnh hưởng tiêu cực của các toán tử di truyền này (ví dụ: đột biến ngẫu nhiên có thể làm giảm số lượng đại diện của s, độc lập với uˆ( , )s t ),

và chỉ xem xét trường hợp lai chéo điểm đơn duy nhất Do đó, định lý schema đưa ra một giới hạn dưới cho tần suất kỳ vọng của schema s, như sau:

Ở đây, pc là xác suất để toán tử lai chéo điểm đơn được áp dụng cho một cá thể bất kỳ, và pm là xác

suất để một bit bất kỳ của một cá thể bất kỳ bị đột biến bởi toán tử đột biến o(s) là số bit đã được

xác định trong schema s, trong đó 0 và 1 là các bit đã được xác định, nhưng * không phải là bit đã

được xác định d(s) là khoảng cách giữa bit đã được xác định bên trái nhất và bên phải nhất trong s Cuối cùng, l là độ dài của các chuỗi bit cá thể trong quần thể Chú ý rằng thành phần bên trái nhất

Trang 15

trong Công thức (9.4) tương đồng với thành phần từ Công thức (9.3) và mô tả tác động của bước chọn lọc Thành phần ở giữa mô tả tác động của toán tử lai chéo điểm đơn duy nhất - cụ thể, nó mô tả xác suất mà một cá thể bất kỳ đại diện cho s sẽ vẫn đại diện cho s sau khi áp dụng toán tử lai chéo này Thành phần cuối cùng mô tả xác suất mà một cá thể bất kỳ đại diện cho schema s sẽ vẫn đại diện cho schema s sau khi áp dụng toán tử đột biến Chú ý rằng tác động của lai chéo điểm đơn và

đột biến tăng lên với số bit đã định nghĩa o(s) trong schema và với khoảng cách d(s) giữa các bit đã

định nghĩa Do đó, định lý schema có thể được diễn giải đại khái như tuyên bố rằng các schema có độ phù hợp cao hơn sẽ có xu hướng tăng sự ảnh hưởng, đặc biệt là các schema chứa số bit đã định nghĩa nhỏ (tức là chứa một số lượng lớn ký tự *) và đặc biệt khi các bit đã định nghĩa này gần nhau trong xâu bit.

Định lý schema có lẽ là một trong những mô tả được trích dẫn rộng rãi nhất về tiến hóa dân số trong thuật toán GA Tuy nhiên, nó không hoàn chỉnh ở chỗ nó không xem xét các tác động tích cực của lai chéo và đột biến Có nhiều phân tích lý thuyết gần đây hơn đã được đề xuất, bao gồm phân tích dựa trên mô hình xích Markov và mô hình cơ học thống kê Xem ví dụ, Whitley và Vose (1995)và Mitchell (1996).

Trang 16

1.5 LẬP TRÌNH DI TRUYỀN

Lập trình di truyền (genetic programming - GP) là một hình thức tính toán tiến hóa trong đó các cá thể trong dân số tiến hóa là các chương trình máy tính thay vì chuỗi bit Koza (1992) mô tả phương pháp cơ bản của lập trình di truyền và trình bày một loạt các chương trình đơn giản mà GP có thể học thành công.

1.5.1 BIỂU DIỄN CHƯƠNG TRÌNH

Các chương trình được xử lý bởi GP thường được biểu diễn bằng cây tương ứng với cây phân tích cú pháp của chương trình Mỗi lời gọi hàm được biểu diễn bởi một nút trong cây, và các đối số cho hàm được cho bởi các nút con của nó Ví dụ, Hình 9.1 minh họa biểu diễn cây cho hàm sin(x) +

xy Để áp dụng lập trình di truyền vào một lĩnh vực cụ thể, người dùng phải xác định các hàm nguyên thủy sẽ được xem xét (ví dụ: sin, cos, +, -, hàm mũ), cũng như các hằng số (ví dụ: x, y, hằng số như 2).Sau đó, thuật toán GP sử dụng tìm kiếm tiến hóa để khám phá không gian rộng lớn của cácchương trình có thể được mô tả bằng những hàm nguyên thủy này.

Giống như trong thuật toán di truyền, thuật toán GP mẫu duy trì một dân số các cá thể (trong trường hợp này là cây chương trình) Trên mỗi lần lặp, nó tạo ra một thế hệ mới của các cá thể bằng cách sử dụng quy trình chọn lọc, lai chéo và đột biến Độ phù hợp của một chương trình cá thể cụ thể trong dân số thường được xác định bằng cách thực thi chương trình trên một tập dữ liệu huấn luyện Các hoạt động lai chéo được thực hiện bằng cách thay thế một cây con được chọn ngẫu nhiên từ một chương trình cha mẹ bằng một cây con từ chương trình cha mẹ khác Hình 9.2 minh họa một phép toán lai chéo thông thường.

Trong nghiên cứu của Koza (1992), ông mô tả một loạt các thí nghiệm áp dụng GP cho nhiều ứng dụng khác nhau Trong các thí nghiệm đó, 10% của quần thể hiện tại, được lựa chọn theo xác suất dựa trên độ phù hợp, được giữ nguyên không thay đổi trong thế hệ tiếp theo Các cá thể còn lại trong thế hệ mới được tạo ra bằng cách áp dụng phép lai chéo (crossover) cho các cặp chương trình từ thế hệ hiện tại, cũng được lựa chọn theo xác suất dựa trên độ phù hợp của chúng Toán tử đột biến(mutation) không được sử dụng trong tập thí nghiệm cụ thể này.

HÌNH 1.1 (Được vẽ lại dựa trên hình 9.1

trong sách Machine Learning của Tom MitChell)

Biểu diễn cây chương trình trong lập trình di truyền

Các chương trình tùy ý được biểu diễn bằngcây phân tích cú pháp của chúng.

Trang 17

HÌNH 1.2 (Được vẽ lại dựa trên hình 9.2 trong sách Machine Learning của Tom MitChell)

Phép toán lai chéo được áp dụng vào hai cây chương trình cha mẹ (ở phía trên) Các điểm lai chéo (các nút được hiển thị đậm ở phía trên) được chọn ngẫu nhiên Các cây con được tạo ra bằng cách trao đổi các cây con gốc tại những điểm giao phối này (ở phía dưới)

1.5.2 VÍ DỤ MINH HỌA

Một ví dụ minh họa được trình bày bởi Koza (1992) liên quan đến việc học một thuật toán để xếp các khối như được hiển thị trong Hình 9.3 Nhiệm vụ là phát triển một thuật toán tổng quát để xếp các khối thành một ngăn xếp duy nhất tạo thành từ ‘universal’, độc lập với cấu hình ban đầu của các khối, các hành động có sẵn để thao tác các khối chỉ cho phép di chuyển một khối duy nhất mỗi lần Cụ thể, khối trên cùng trong ngăn xếp có thể được di chuyển xuống bề mặt bàn hoặc một khối trên bề mặt bàn có thể được di chuyển lên trên đỉnh ngăn xếp.

Trang 18

HÌNH 1.3 (Trích từ Hình 9.3 trong sách Machine Learning của Tom Mitchell)

Một bài toán xếp khối Nhiệm vụ cho GP là tìm ra một chương trình có thể chuyển đổi một cấu hình ban đầu tùy ý của các khối thành một ngăn xếp có chữ ‘universal’ Một tập hợp gồm 166 cấu hình ban đầu như vậy đã được cung cấp để đánh giá độ thích nghi của các chương trình ứng cử viên (theoKoza 1992).

Như trong hầu hết các ứng dụng GP, sự lựa chọn của biểu diễn bài toán có tác động đáng kể đến sự dễ dàng trong việc giải quyết vấn đề Trong công thức của Koza, các hàm nguyên thủy được sử dụng để xây dựng các chương trình cho nhiệm vụ này bao gồm ba đối số cơ bản sau đây:

 CS (current stack) – ngăn xếp hiện tại, đề cập đến tên của khối đặt ở trên cùng ngăn xếp,

hoặc trả về F nếu không có ngăn xếp hiện tại.

 TB (top correct block) - khối đặt đúng trên cùng, đề cập đến tên của khối đặt trên cùng ngăn xếp, sao cho nó và các khối bên dưới nó đúng thứ tự.

 NN (next necessary) - khối cần thiết tiếp theo, đề cập đến tên của khối cần đặt lên trên TB

trong ngăn xếp, để tạo thành từ ‘universal’, hoặc F nếu không cần thêm khối nào.

Như có thể thấy, lựa chọn cụ thể về các đối số cơ bản này cung cấp một biểu diễn tự nhiên để mô tả các chương trình điều khiển các khối cho nhiệm vụ này Hãy tưởng tượng ngược lại, sự khó khăn tương đối của nhiệm vụ nếu chúng ta thay vào đó định nghĩa các đối số cơ bản là tọa độ x và y của mỗi khối.

Ngoài các đối số cơ bản này, ngôn ngữ chương trình trong ứng dụng này bao gồm các hàm nguyên thủy sau đây:

 (MS x) (di chuyển vào ngăn xếp), nếu khối x đang nằm trên bàn, toán tử này di chuyển x lên đầu ngăn xếp và trả về giá trị T Ngược lại, nó không làm gì và trả về giá trị F.

 (MT x) (di chuyển vào bàn), nếu khối x đang ở bất kỳ vị trí nào trong ngăn xếp, toán tử này dichuyển khối đầu ngăn xếp xuống bàn và trả về giá trị T Ngược lại, nó trả về giá trị F.

 (EQ x y) (bằng nhau), trả về giá trị T nếu x bằng y, và trả về giá trị F nếu không. (NOT x), trả về giá trị T nếu x = F, và trả về giá trị F nếu x = T.

 (DU x y) (Thực hiện cho đến khi), thực hiện biểu thức x lặp đi lặp lại cho đến khi biểu thức y trả về giá trị T.

Để cho phép hệ thống đánh giá sự phù hợp của bất kỳ chương trình nào, Koza đã cung cấp một tập hợp gồm 166 ví dụ bài toán huấn luyện đại diện cho nhiều cấu hình khối ban đầu khác nhau, bao gồm các bài toán có độ khó khác nhau Sự phù hợp của bất kỳ chương trình cụ thể nào được xem là số lượng các ví dụ này mà chương trình giải quyết được Quần thể được khởi tạo với 300 chương trình ngẫu nhiên Sau 10 thế hệ, hệ thống đã tìm ra chương trình sau đây, giải quyết tất cả 166 bài toán: (EQ (DU (MT CS)(NOT CS)) (DU (MS NN)(NOT NN)) )

Lưu ý rằng chương trình này chứa một chuỗi hai câu lệnh DU, hay ‘Thực hiện cho đến khi’ Câu

Trang 19

lệnh đầu tiên lặp đi lặp lại việc di chuyển khối trên cùng của ngăn xếp xuống bàn, cho đến khi ngăn xếp trở thành trống Sau đó, câu lệnh ‘Thực hiện cho đến khi’ thứ hai lặp đi lặp lại việc di chuyển khối tiếp theo cần thiết từ bàn lên ngăn xếp Vai trò của biểu thức EQ cấp cao nhất ở đây là cung cấpmột cách hợp lệ về mặt cú pháp để sắp xếp hai vòng lặp DU này.

Một điều ngạc nhiên, sau chỉ vài thế hệ, GP này đã có thể khám phá ra một chương trình giải quyết tất cả 166 bài toán huấn luyện Tất nhiên, khả năng của hệ thống để làm được điều này phụ thuộc mạnh mẽ vào các đối số và hàm nguyên thủy được cung cấp, và tập hợp các ví dụ huấn luyện được sử dụng để đánh giá sự phù hợp.

1.5.3 NHẬN XÉT VỀ LẬP TRÌNH DI TRUYỀN

Như minh họa trong ví dụ trên, lập trình di truyền mở rộng các thuật toán di truyền để phát triển các chương trình máy tính hoàn chỉnh Bất chấp kích thước khổng lồ của không gian giả thuyết mà nó phải tìm kiếm, lập trình di truyền đã được chứng minh là tạo ra những kết quả hấp dẫn trong một số ứng dụng O'Reilly và Oppacher (1994) đã so sánh GP với các phương pháp khác để tìm kiếm trong không gian của các chương trình máy tính, chẳng hạn như leo đồi và ủ mô phỏng

Trong khi ví dụ trên về tìm kiếm GP khá đơn giản, Koza et al (1996) tóm tắt việc sử dụng GP trong một số nhiệm vụ phức tạp hơn như thiết kế mạch lọc điện tử và phân loại các đoạn phân tử protein Vấn đề thiết kế mạch lọc cung cấp một ví dụ về một vấn đề phức tạp hơn nhiều Ở đây, các chương trình được phát triển để biến một mạch gốc cố định đơn giản thành một thiết kế mạch cuối cùng Các chức năng cơ bản được GP sử dụng để xây dựng các chương trình của nó là các chức năng chỉnh sửa mạch gốc bằng cách chèn hoặc xóa các thành phần mạch và kết nối dây Mức độ phùhợp của mỗi chương trình được tính toán bằng cách mô phỏng mạch mà nó xuất ra (sử dụng trình giả lập mạch SPICE) để xác định mức độ phù hợp của mạch này với các thông số kỹ thuật thiết kế cho bộ lọc mong muốn Chính xác hơn, điểm phù hợp là tổng độ lớn của sai số giữa đầu ra mạch mong muốn và thực tế ở 101 tần số đầu vào khác nhau Trong trường hợp này, một quần thể có kích thước 640.000 được duy trì, với chọn lọc tạo ra 10% quần thể kế thừa, lai chéo tạo ra 89% và đột biến tạo ra 1% Hệ thống được thực thi trên bộ xử lý song song 64 nút Trong quần thể được tạo ngẫu nhiên đầu tiên, các mạch được tạo ra vô lý đến mức trình giả lập SPICE thậm chí không thể môphỏng hành vi của 98% mạch Tỷ lệ mạch không thể mô phỏng giảm xuống 84,9% sau thế hệ đầu tiên, đến 75,0% sau thế hệ thứ hai và trung bình là 9,6% ở các thế hệ tiếp theo Điểm phù hợp của mạch tốt nhất trong quần thể ban đầu là 159, so với điểm 39 sau 20 thế hệ và điểm 0,8 sau 137 thế hệ Mạch tốt nhất, được sản xuất sau 137 thế hệ, thể hiện hiệu suất rất giống với hiệu quả mong muốn.

Trong hầu hết các trường hợp, hiệu suất của lập trình di truyền phụ thuộc chủ yếu vào việc lựa chọn cách biểu diễn và lựa chọn hàm thích nghi Vì lý do này, một lĩnh vực tích cực của nghiên cứu hiện tại là nhằm mục đích khám phá và kết hợp tự động các chương trình con cải thiện tập hợp các hàm nguyên thủy ban đầu, do đó cho phép hệ thống tự động thay đổi các nguyên hàm mà từ đó nó xây dựng các cá thể Ví dụ, xem Koza (1994).

Trang 20

1.6 CÁC MÔ HÌNH TIẾN HÓA VÀ HỌC TẬP

Trong nhiều hệ thống tự nhiên, các sinh vật riêng lẻ học cách thích nghi đáng kể trong suốt cuộc đời của chúng Đồng thời, các quá trình sinh học và xã hội cho phép các loài của chúng thích nghi trong một khung thời gian của nhiều thế hệ Một câu hỏi thú vị liên quan đến các hệ thống tiến hóa là‘Mối quan hệ giữa việc học trong suốt cuộc đời của một cá nhân và quá trình học tập ở cấp độ loài trong khung thời gian dài hơn mà quá trình tiến hóa mang lại là gì?’

1.6.1 TIẾN HÓA LAMARCKIAN

Lamarck là một nhà khoa học, vào cuối thế kỷ 19, đã đề xuất rằng sự tiến hóa qua nhiều thế hệ bị ảnh hưởng trực tiếp bởi trải nghiệm của từng sinh vật trong suốt cuộc đời của chúng Cụ thể, ông đề xuất rằng kinh nghiệm của một sinh vật đơn lẻ ảnh hưởng trực tiếp đến cấu trúc di truyền của con cái chúng: Nếu một cá thể học được cách tránh một số thực phẩm độc hại trong suốt cuộc đời của mình, nó có thể truyền đặc điểm này về mặt di truyền cho con cái của nó, do đó sẽ không cần phải học những tính trạng này Đây là một phỏng đoán hấp dẫn, bởi vì nó có lẽ sẽ cho phép tiến trình tiến hóa hiệu quả hơn so với quy trình tạo và thử nghiệm (như của GAs và GPs) bỏ qua trải nghiệm thu được trong suốt cuộc đời của một cá nhân Bất chấp sự hấp dẫn của lý thuyết này, bằng chứng khoa học hiện tại hoàn toàn trái ngược với mô hình của Lamarck Quan điểm được chấp nhận hiện nay là cấu trúc di truyền của một cá nhân, trên thực tế, không bị ảnh hưởng bởi kinh nghiệm sống của cha mẹ ruột của một người Bất chấp thực tế sinh học rõ ràng này, các nghiên cứu máy tính gần đây đã chỉ ra rằng các quy trình Lamarckian đôi khi có thể cải thiện hiệu quả của các thuật toán di truyền trên máy vi tính (xem Grefenstette 1991; Ackley và Littman 1994; và Hart và Belew 1995).

1.6.2 HIỆU ỨNG BALDWIN

Mặc dù tiến hóa Lamarckian không phải là một mô hình tiến hóa sinh học được chấp nhận, nhưng các cơ chế khác đã được đề xuất theo đó việc học tập của cá nhân có thể thay đổi quá trình tiến hóa Một cơ chế như vậy được gọi là hiệu ứng Baldwin, theo tên của JM Baldwin (1896), người đầu tiên đề xuất ý tưởng này Hiệu ứng Baldwin dựa trên các quan sát sau:

 Nếu một loài đang tiến hóa trong một môi trường thay đổi, thì sẽ có áp lực tiến hóa để ủng hộ những cá thể có khả năng học hỏi trong suốt cuộc đời của chúng Ví dụ: nếu một kẻ săn mồi mới xuất hiện trong môi trường, thì những cá thể có khả năng học cách tránh kẻ săn mồi sẽ thành công hơn những cá thể không thể học Trên thực tế, khả năng học hỏi cho phépmột cá nhân thực hiện một tìm kiếm cục bộ nhỏ trong suốt cuộc đời của mình để tối đa hóa khả năng của mình Ngược lại, những cá nhân không học tập mà thể lực của họ được quyết định hoàn toàn bởi cấu trúc di truyền của họ sẽ hoạt động tương đối bất lợi

 Những cá nhân có thể học được nhiều tính trạng sẽ ít phụ thuộc vào mã di truyền của họ hơn đối với các tính trạng ‘cứng’ Kết quả là, những cá nhân này có thể hỗ trợ nguồn gen đadạng hơn, dựa vào việc học hỏi của từng cá nhân để khắc phục những đặc điểm ‘còn thiếu’ hoặc ‘không hoàn toàn tối ưu’ trong mã di truyền Đổi lại, nhóm gen đa dạng hơn này có thểhỗ trợ sự thích nghi tiến hóa nhanh hơn Do đó, khả năng học hỏi của các cá nhân có thể có tác động tăng tốc gián tiếp đến tốc độ thích nghi tiến hóa của toàn bộ quần thể.

Để minh họa, hãy tưởng tượng một số thay đổi mới trong môi trường của một số loài, chẳng hạn nhưmột động vật ăn thịt mới Sự thay đổi như vậy sẽ ưu tiên chọn lọc những cá thể có khả năng học cáchtránh kẻ săn mồi Khi tỷ lệ các cá thể tự cải thiện như vậy trong quần thể tăng lên, quần thể sẽ có thể hỗ trợ nguồn gen đa dạng hơn, cho phép các quá trình tiến hóa (thậm chí cả các quá trình tạo và thử nghiệm không phải của Lamarckian) thích nghi nhanh hơn Sự thích nghi tăng tốc này có thể lần lượtcho phép các quá trình tiến hóa tiêu chuẩn phát triển nhanh hơn một đặc điểm di truyền (không học được) để tránh kẻ săn mồi (ví dụ: nỗi sợ bản năng đối với loài động vật này) Do đó, hiệu ứng Baldwin cung cấp một cơ chế gián tiếp cho việc học tập của cá nhân để tác động tích cực đến tốc độ

Ngày đăng: 06/08/2024, 09:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w