You are on page 1of 8

THUẬT GIẢI DI TRUYỀN

Thuật giải di truyền cung cấp một cách tiếp cận cho việc học dựa vào mô phỏng sự
tiến hóa. Các giả thuyết thường được mô tả bằng các chuỗi bit, việc hiểu các chuỗi bit
này tùy thuộc vào ứng dụng, ý tưởng các giả thuyết cũng có thể được mô tả bằng các
biểu thức kí hiệu hoặc ngay cả các chương trình máy tính. Tìm kiếm giả thuyết thích hợp
bắt đầu với một quần thể, hay một tập hợp có chọn lọc ban đầu của các giả thuyết. Các cá
thể của quần thể hiện tại khởi nguồn cho quần thể thế hệ kế tiếp bằng các hoạt động lai
ghép và đột biến ngẫu nhiên – được lấy mẫu sau các quá trình tiến hóa sinh học. Ở mỗi
bước, các giả thuyết trong quần thể hiện tại được ước lượng liên hệ với đại lượng thích
nghi được cho, với các giả thuyết phù hợp nhất được chọn theo xác suất là các hạt giống
cho việc sản sinh thế hệ kế tiếp. Thuật giải di truyền đã được ứng dụng một cách thành
công cho những tác vụ học khác nhau và cho các vấn đề tối ưu hóa khác. Ví dụ, chúng đã
được dùng để học tập luật điều khiển robot và để tối ưu hóa các thông số học và tôpô cho
mạng nơron nhân tạo.

Động lực
Thuật giải di truyền cung cấp một phương pháp học được thúc đẩy bởi sự tương tự
với sự tiến hóa sinh học. Thay vì tìm kiếm các giả thuyết từ tổng quát đến cụ 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 việc đột biến và
việc tái hợp các phần của giả thuyết được biết hiện tại là tốt nhất Ở mỗi bước, một tập
các giả thuyết được gọi là quần thể hiện tại được cập nhật bằng cách thay thế vài phần
nhỏ quần thể bởi cá thể con của các giả thuyết tốt nhất ở thời điểm hiện tại. Sự phổ biến
của GAs được thúc đẩy bởi các yếu tố sau:
 Tiến hóa là một phương pháp mạnh, thành công cho sự thích nghi bên trong các
hệ thống sinh học.
 GA có thể tìm kiếm trên các không gian giả thuyết có các phần tương tác phức
tạp, ở đó ảnh hưởng của mỗi phần lên toàn thể độ thích nghi giả thuyết khó có thể
mô hình.
 Thuật giải GA có thể được thực hiện song song và có thể tận dụng thành tựu của
phần cứng máy tính mạnh.

Thuật giải di truyền


Bài toán dành cho GAs là tìm kiếm trên không gian các giả thuyết ứng cử để xác
định giả thuyết tốt nhất. Trong GAs “giả thuyết tốt nhất” được định nghĩa như là một giả
thuyết tối ưu hóa một đại lượng số được định nghĩa trước cho bài toán sắp tới, được gọi
là độ thích nghi của giả thuyết. Ví dụ, nếu tác vụ học hỏi là bài toán xấp xỉ một hàm chưa
biết cho tập mẫu huấn luyện gồm dữ liệu đầu vào và dữ liệu đầu ra, thì độ thích nghi có
thể được định nghĩa như là độ chính xác của giả thuyết trên dữ liệu huấn luyện này. Nếu
tác vụ là học chiến lược chơi cờ, độ thích nghi có thể là số ván thắng của chiến lược này
khi đấu với các chiến lược khác trong quần thể hiện tại.
Mặc dù các thuật giải di truyền được thực hiện thay đổi theo bài toán cụ thể, nhưng
chúng chia sẻ chung cấu trúc tiêu biểu sau: Thuật giải hoạt động bằng cách cập nhật liên
tục tập giả thuyết – được gọi là quần thể. Ở mỗi lần lặp, tất cả các cá thể trong quần thể
được ước lượng tương ứng với hàm thích nghi. Rồi quần thể mới được tạo ra bằng cách
lựa chọn có xác suất các cá thể thích nghi tốt nhất từ quần thể hiện tại. Một số trong
những cá thể được chọn được đưa nguyên vẹn vào quần thể kế tiếp. Những cá thể khác
được dùng làm cơ sở để tạo ra các cá thể con bằng cách áp dụng các tác động di truyền:
lai ghép và đột biến.
GA( Fitness, Fitness_threshold, p, r, m)
{
// Fitness: hàm gán thang điểm ước lượng cho một giả thuyết
// Fitness_threshold: Ngưỡng xác định tiêu chuẩn dừng giài thuật tìm kiếm
// p: Số cá thể trong quần thể giả thuyết
// r: Phân số cá thể trong quần thể được áp dụng toán tử lai ghép ở mỗi bước
// m: Tỉ lệ cá thể bị đột biến

• Khởi tạo quần thể: P ß Tạo ngẫu nhiên p cá thể giả thuyết
• Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)
• while [max Fitness(h)] < Fitness_threshold do
Tạo thế hệ mới, PS
1. Chọn cá thể: chọn theo xác suất (1 – r)p cá thể trong quần thể P thêm
vào PS. Xác suất Pr(hi) của giả thuyết hi thuộc P được tính bởi công thức:
Fitness (hi )
Pr( hi ) =

p
j =1
Fitness (h j )

r× p
2. Lai ghép: chọn lọc theo xác suất cặp giả thuyết từ quần thể P, theo
2
Pr(hi) đã tính ở bước trên. Ứng với mỗi cặp <h1, h2>, tạo ra hai con bằng
cách áp dụng toán tử lai ghép. Thêm tất các các con vào PS.
3. Đột biến: Chọn m% cá thể của PS với xác suất cho mỗi cá thể là như nhau.
Ứng với mỗi cá thể biến đổi một bit được chọn ngẫu nhiên trong cách thể
hiện của nó.
4. Cãp nhật: P ß PS.
5. Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)
• Trả về giả thuyết trong P có độ thích nghi cao nhất.
}
Bảng 2.1. Thuật giải di truyền mẫu
Quần thể gồm p cá thể. Ở mỗi lần lặp, quần thể kế tiếp PS được hình thành từ việc
lựa chọn theo xác suất các giả thuyết hiện tại theo độ thích nghi của chúng và bằng cách
thêm vào các giả thuyết mới. Các giả thuyết mới được tạo ra bằng cách áp dụng toán tử
lai ghép cho cặp giả thuyết thích nghi nhất và bằng cách tạo ra các đột biến điểm đơn
trong thế hệ giả thuyết kết quả. Quá trình này được lặp cho đến khi các giả thuyết thích
hợp được phát hiện. Các toán tử lai ghép và đột biến tiêu biểu được định nghĩa trong
bảng kế tiếp.
Một thuật giải di truyền mẫu được mô tả trong bảng 2.1. Các đầu vào cho thuật giải
này bao gồm hàm tính độ thích nghi để tính hạng cho các giả thuyết ứng cử, một giá trị
ngưỡng được định nghĩa cấp độ thích nghi có thể chấp nhận để kết thúc thuật giải, kích
thước quần thể, và các tham số quyết định các quần thể kế tiếp được tạo ra như thế nào:
phần quần thể bị thay thế ở mỗi thế hệ và tỉ lệ đột biến.
Lưu ý trong thuật giải này, ở mỗi bước lặp qua vòng lặp chính tạo ra một thế hệ mới
các giả thuyết dựa vào quần thế hệ hiện tại. Trước tiên, một số giả thuyết được chọn từ
quần thể hiện tại để đưa vào thế hệ kế tiếp. Những giả thuyết này được chọn theo xác
suất, ở đây xác suất của giả thuyết được tính bởi:
Fitness (hi )
Pr( hi ) = (2.1)

p
j =1
Fitness (h j )

Vì vậy, xác suất để giả thuyết được chọn tỉ lệ với độ thích nghi của nó và tỉ lệ
nghịch với độ thích nghi của các giả thuyết cạnh tranh khác trong quần thể hiện tại.
Một khi các cá thể này của thế hệ hiện tại đã được chọn để đưa vào quần thể thế hệ
kế tiếp, các cá thể thêm vào được tạo ra dùng toán tử lai ghép. Lai ghép, được định nghĩa
chi tiết trong phần kế tiếp, lấy hai giả thuyết từ thế hệ hiện tại và tạo ra hai giả thuyết con
bằng cách kết hợp các phần của hai giả thuyết cha. Các giả thuyết cha được chọn theo
xác suất từ quần thể hiện tại, sử dụng hàm xác suất được cho bởi phương trình (2.1). Sau
khi các cá thể mới được tạo ra từ hoạt động lai ghép này, quần thế thế hệ mới bây giờ có
đủ số lượng thành viên mong muốn. Lúc này, một phân số m nào đó các cá thể này được
chọn một cách ngẫu nhiên, và tất cả các đột biến ngẫu nhiên được thực hiện để thay đổi
các cá thể này.

Thể hiện các giả thuyết


Các giả thuyết trong GAs thường được thể hiện dưới dạng chuỗi các bit, để chúng
có thể dễ dàng được thực hiện bởi các toán tử di truyền: đột biến và lai ghép. Các giả
thuyết được thể hiện bởi chuỗi bit này có thể khá phức tạp. Ví dụ, tập các luật if-then có
thể dễ dàng được thể hiện theo cách này, bằng cách chọn một cách thức mã hóa các luật
để phân bố các chuỗi con riêng cho mỗi điều kiện trước và điều kiện sau của luật. Các ví
dụ về sự thể hiện các luật này trong các hệ thống GAs được mô tả bởi Hooland (1986);
Grefenstette (1988); và DeJong et al. (1993).
Để thấy các luật if-then có thể được mã hóa bằng các chuỗi bit như thế nào, trước
tiên hãy xem chúng ta có thể sử dụng chuỗi bit như thế nào để mô tả ràng buộc trên giá
trị của thuộc tính đơn. Để lấy một ví dụ, hãy xem xét thuộc tính Outlook, thuộc tính này
có thể lấy bất kì giá trị nào trong ba giá trị: Sunny, Overcast hoặc Rain. Một cách rõ ràng
để thể hiện ràng buộc cho Outlook là dùng một chuỗi bit có chiều dài 3, mỗi vị trí bit
tương ứng với một trong ba giá trị có thể của nó. Đặt giá trị 1 ở một vài vị trí để chỉ ra
rằng thuộc tính được phép lấy giá trị tương ứng. Ví dụ, chuỗi 010 thể hiện ràng buộc
Outlook phải lấy giá trị thứ hai trong các giá trị này, hay là Outlook = Overcast. Một cách
tương tự, chuỗi 011 thể hiện ràng buộc tổng quát hơn là cho phép hai giá trị có thể, hay là
Outlook = Overcast ∨ Rain. Chú ý 111 thể hiện ràng buộc có thể tổng quát nhất, chỉ ra
rằng chúng ta không quan tâm giá trị nào trong các giá trị có thể của nó mà thuộc tính
giữ.
Đưa ra phương pháp này để thể hiện các ràng buộc trên thuộc tính đơn, 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 thể hiện bằng cách nối các
chuỗi bit tương ứng. Ví dụ, xem xét thuộc tính thứ hai, Wind, có thể lấy giá trị Strong
hoặc Weak. Điều kiện trước của luật chẳng hạn như,
(Outlook = Overcast ∨Rain) ∧(Wind = Strong)
có thể được thể hiện bởi chuỗi bit có chiều dàl là 5 sau:
Outlook Wind
011 10
Các điều kiện sau của luật (chẳng hạn như PlayTenis = yes) có thể được thể hiện
theo kiểu tương tự. Vì vậy, toàn bộ luật có thể được mô tả bởi móc nối các chuỗi bit mô
tả các điều kiện đầu, cùng với chuỗi bit mô tả điều kiện sau của luật. Ví dụ, luật
IF Wind = Strong THEN PlayTennis = yes
sẽ được thể hiện bởi chuỗi
Outlook Wind PlayTennis
111 10 10
ở đây 3 bit đầu tiên mô tả ràng buộc “không quan tâm” trên Outlook , hai bit kế tiếp mô
tả ràng buộc trên Wind, và hai bit cuối cùng mô tả điều kiện sau của luật (ở đây chúng ta
giả sử PlayTennis có thể lấy giá trị Yes hoặc No). Chú ý chuỗi bit thể hiện luật chứa một
chuỗi con cho mỗi thuộc tính trong không gian giả thuyết, thậm chí thuộc tính không bị
ràng buộc bởi các điều kiện trước. Điều này tạo ra một chuỗi bit có chiều dài cố định để
thể hiện các luật, trong đó các chuỗi con ở các vị trí cụ thể mô tả các ràng buộc trên các
thuộc tính cụ thể. Đưa ra cách thể hiện này cho các luật đơn, chúng ta có thể thể hiện tập
các luật bằng cách móc nối các thể hiện chuỗi bit của các luật riêng biệt.
Trong thiết kế mã hóa chuỗi bit cho một vài không gian giả thuyết, thật là hữu ích
để sắp xếp cho mọi chuỗi bit tuân thủ theo cú pháp để thể hiện một giả thuyết được định
nghĩa tốt. Để mô tả, chú ý cách mã hóa luật ở đoạn trên, chuỗi bit 111 10 11 thể hiện luật
có điều kiện trước không ràng buộc thuộc tính mục tiêu PlayTennis. Nếu chúng ta tránh
xem xét giả thuyết này, chúng ta có thể mượn một cách mã hóa khác (ví dụ phân bố chỉ
một bit cho điều kiện sau để chỉ định giá trị là Yes hoặc No), thay đổi các toán tử di
truyền để tránh một cách tường minh việc xây dựng các chuỗi bit như thế, hoặc đơn giản
gán một độ thích nghi rất thấp cho các chuỗi bit như vậy.

Các toán tử di truyền


Những thế hệ sau trong GAs được quyết định bởi tập các toán tử tái hợp và đột biến
các cá thể được chọn từ quần thể hiện tại. Các toán tử GAs tiêu biểu để thực hiện các giả
thiết chuỗi bit được mô tả trong bảng 4.1. Các toán tử này tương ứng với các phiên bản
được ý tưởng hóa của các hoạt động di truyền trong tiến hóa sinh học. Hai toán tử phổ
biến nhất là lai ghép và đột biến.
Toán tử lai ghép tạo ra hai con từ hai chuỗi cha bằng cách sao chép các bit được chọn
lựa từ mỗi cha. Bit ở vị trí i trong mỗi con được sao chép từ bit ở vị trí i của một trong
hai cha. Chọn lựa cha nào phân phối bit cho vị trí i được quyết định bởi thêm vào một
chuỗi mặt nạ lai ghép. Để minh họa, xem xét toán tử lai ghép điểm đơn (single-point) ở
đầu bảng 4.1. Xem xét hai con trên nhất trong trường hợp này. Con này lấy năm bit đầu
tiên của nó từ cha thứ nhất và sáu bit còn lại từ cha thứ hai, bởi mặt nạ lai ghép là
11111000000 xác định các lựa chọn này cho mỗi vị trí bit. Con thứ hai dùng cùng mặt nạ
lai ghép, nhưng đổi vai trò của hai cha. Do đó, nó chứa các bit không được dùng bởi con
đầu tiên. Trong lai ghép điểm đơn, mặt nạ lai ghép luôn luôn được xây dựng sao cho nó
bắt đầu với chuỗi chứa n giá trị 1 liên tục, được theo sau một số giá trị 0 cần thiết để
hoàn chỉnh chuỗi. Cách này tạo ra cá thể con có n bit đầu được phân phối bởi một cha và
các bit còn lại bởi cha thứ hai. Mỗi lần toán tử lai ghép điểm đơn được áp dụng, điểm lai
ghép n được chọn ngẫu nhiên, rồi mặt nạ lai ghép được tạo và áp dụng.
Các chuỗi ban đầu Mặt nạ lai ghép Các cá thể con

Lai ghép điểm đơn:


1110100100 1110101010
0 1111100000 1
0
0000101010 0000100100
1 0

Lai ghép điểm kép:


1110100100 1100101100
0 0011111000 0
0
0000101010 0010100010
1 1
Lai ghép đồng nhất:
1110100100 1000100010
0 0011111000 0
0
0000101010 0110101100
1 1

Đột biến điểm:


1110100100 1110101100
0 0

Bảng 4.1 Các toán tử chung cho thuật giải di truyền


Trong lai ghép hai điểm, cá thể con được tạo ra bởi thay thế các đoạn trung gian của
một cá thể cha vào giữa của chuỗi cha thứ hai. Nói một cách khác, mặt nạ lai ghép là một
chuỗi bắt đầu với n0 trị 0, được theo sau bởi chuỗi liên tục n1 trị 1, được theo sau bởi một
số trị 0 cần thiết để hoàn chỉnh chuỗi. Mỗi lần toán tử lai ghép hai điểm được áp dụng,
một mặt nạ được tạo ra bằng cách chọn ngẫu nhiên các số nguyên n0 và n1. Thí dụ, trong
ví dụ được chỉ ra ở bảng 4.1 cá thể con được tạo ra dùng một mặt nạ với n0 = 2 và n1 = 5.
Như lai ghép trước, hai cá thể con được tạo ra bằng cách hoán đổi vai trò của hai cá thể
cha.
Lai ghép đồng nhất kết hợp các bit được lấy mẫu đồng nhất từ hai cá thể cha, như
được minh họa trong trong bảng 4.1. Trong trường hợp này, mặt nạ lai ghép được tạo ra
như là một chuỗi bit ngẫu nhiên với mỗi bit được chọn ngẫu nhiên và độc lập với các bit
khác.
Thêm vào các toán tử tái kết hợp - tạo ra cá thể con bằng cách kết hợp các phần của
hai cá thể cha, một loại toán tử thứ hai tạo ra cá thể con từ một cá thể cha. Cụ thể là toán
tử đột biến tạo ra những thay đổi ngẫu nhiên nhỏ cho chuỗi bit bằng cách chọn một bit ở
vị trí ngẫu nhiên, rồi thay đổi giá trị của nó. Đột biến thường được thực hiện sau khi lai
ghép được áp dụng như trong giải thuật mẫu trong bảng 2.1.
Một vài hệ thống GAs mượn thêm một vài toán tử, các toán tử đặc biệt được chuyên
biệt hóa cho biểu diễn giả thuyết cụ thể được sử dụng bởi hệ thống.Ví dụ, Grefenstette et
al. (1991) mô tả hệ thống học tập luật điều khiển robot. Nó sử dụng đột biến và lai ghép
cùng với một toán tử để chuyên biệt hóa các luật.

Hàm thích nghi và sự chọn lọc


Hàm thích nghi định nghĩa tiêu chuẩn để xếp hạng các giả thuyết tiềm ẩn và để chọn
lọc chúng theo xác suất để đưa vào quần thể thế hệ kế tiếp. Nếu tác vụ là học các luật
phân loại, thì hàm thích nghi thông thường có một thành phần cho điểm độ chính xác
phân loại của luật trên tập mẫu huấn luyện được cho. Thường các tiêu chuẩn khác có thể
được bao hàm, chẳng hạn như độ phức tạp và mức độ tổng quát của luật. Một cách tổng
quát hơn, khi giả thuyết chuỗi bit được hiểu như là một thủ tục phức tạp (ví dụ, khi chuỗi
bit thể hiện tập chọn lọc, các luật if-then sẽ được móc xích với nhau, để điều khiển thiết
bị robot ), hàm thích nghi có thể đo hiệu suất tổng của thủ tục kết quả hơn là hiệu suất
của các luật riêng biệt.
Trong thuật giải GA mẫu của chúng tôi được chỉ trong bảng 2.1, xác suất để một giả
thuyết được chọn được cho bởi tỉ số của độ thích nghi của nó với độ thích nghi của các
thành viên khác của quần thể hiện tại, như đã thấy trong phương trình (2.1). Phương pháp
này thỉnh thoảng thường được gọi là sự chọn lọc tỉ lệ độ thích nghi, hoặc sự chọn lọc
vòng roulette. Các phương pháp khác dùng độ thích nghi để chọn lọc các giả thuyết cũng
sẽ được đề xuất. Ví dụ, sự chọn lọc kiểu vòng thi đấu, hai giả thuyết đầu tiên được chọn
ngẫu nhiên từ quần thể hiện tại. Với một vài xác suất p được định nghĩa trước hai cá thể
này cáng phù hợp càng được chọn và với xác suất (1 – p) giả thuyết càng ít phù hợp càng
được chọn. Sự chọn lọc theo vòng thi đấu thường tạo ra quần thể khác nhau nhiều hơn so
với sự chọn lọc tỉ lệ với độ thích nghi (Goldberg và Deb 1991). Trong phương pháp sự
chọn lọc theo hạng, các giả thuyết trong quần thể hiện tại đầu tiên sẽ được sắp xếp theo
độ thích nghi. Xác suất để giả thuyết sẽ được chọn tỉ lệ với hạng của nó trong danh sách
đã sắp xếp hơn là độ thích nghi của nó.

You might also like