Làm thế nào để chúng ta biết rằng thế hệ tiếp theo sẽ tốt hơn?


32

Gần đây tôi đã được giới thiệu về các thuật toán di truyền bởi bài báo MSDN này , trong đó ông gọi chúng là tiến hóa tổ hợp, nhưng dường như là điều tương tự, và đang đấu tranh để hiểu cách kết hợp hai giải pháp tiềm năng sẽ luôn tạo ra một giải pháp mới ít nhất là tốt như cha mẹ của nó.

Tại sao cái này rất? Chắc chắn kết hợp có thể tạo ra một cái gì đó tồi tệ hơn.

Theo tôi hiểu, thuật toán dựa trên khái niệm rằng khi một con đực và con cái của một loài sinh ra con cái, những con cái đó sẽ có đặc điểm của cả bố và mẹ. Một số kết hợp sẽ tốt hơn, một số tồi tệ hơn và một số tốt như vậy. Những người tốt hơn (đối với bất kỳ định nghĩa "tốt hơn" nào là phù hợp) sẽ có nhiều cơ hội sống sót hơn và tạo ra các cuộc tấn công có đặc điểm được cải thiện. Tuy nhiên, sẽ có những kết hợp yếu hơn. Tại sao đây không phải là vấn đề với GA?


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?- Vì các kết hợp yếu hơn bị loại bỏ.
Robert Harvey

6
Chúng ta biết rằng thế hệ tiếp theo sẽ không tệ hơn bởi vì chúng ta không vứt bỏ những người tốt nhưng chúng ta lại vứt bỏ những người xấu. Và có một cơ hội hợp lý rằng việc kết hợp một số thứ tốt sẽ làm cho một thứ thậm chí còn tốt hơn, nhưng nó không được đảm bảo.
dùng253751

7
Why isn't this an issue with GA?Vâng, nó là, hoặc chính xác hơn, nó có thể. Một trong nhiều (nhiều) tham số để tối ưu hóa khi sử dụng GA là kích thước dân số: nếu quá thấp, bạn chỉ có thể tạo ra các cá nhân yếu hơn, nhưng nếu quá cao, thời gian tính toán liên quan đến chức năng tập thể dục có thể quá cao.
Loufylouf

3
Đó là một sự khác biệt giữa nhân giốnglàm cỏ : giai đoạn nhân giống có thể (sẽ) tạo ra con cái tồi tệ hơn, nhưng giai đoạn làm cỏ sẽ (nên) loại bỏ hiệu quả tồi tệ nhất trước giai đoạn nhân giống tiếp theo.
TripeHound

Cảm ơn tất cả các bạn. Nếu tôi hiểu chính xác, đó là cách anh ta nói nó trong bài báo đã ném tôi ra khỏi đường mòn. Anh ấy nói " Sinh vật mới, có lẽ rất tốt, sinh vật thay thế một Sinh vật nghèo " khiến tôi thắc mắc. Có vẻ như đã sai :)
Avrohom Yisroel

Câu trả lời:


43

Một thuật toán di truyền cố gắng cải thiện ở mỗi thế hệ bằng cách loại bỏ dân số. Mỗi thành viên được đánh giá theo chức năng tập thể dục và chỉ một phần có điểm cao trong số họ được phép sao chép.

Mặc dù vậy, bạn đã đúng: không có gì đảm bảo rằng thế hệ tiếp theo sẽ cải thiện điểm số của người tiền nhiệm.

Hãy xem xét chương trình chồn của Dawkins : "phát triển" chuỗi"Methinks it is like a weasel" . Bắt đầu từ một chuỗi các chuỗi ngẫu nhiên, chức năng tập thể dục đánh giá kết quả khớp văn bản gần nhất, được nhiễu loạn để tạo ra thế hệ tiếp theo. Với tái tạo chéo đơn giản, hai chuỗi điểm cao được kết hợp có thể dễ dàng tạo ra con cái có điểm thấp hơn. Ngay cả đột biến ngẫu nhiên "vô tính" của một chuỗi thể dục cao duy nhất cũng có thể làm giảm thể lực của trẻ.

Điều đáng chú ý, tôi nghĩ rằng điều này không nhất thiết là một lỗ hổng. Với loại tìm kiếm này, có ý tưởng về cực đại địa phương . Một thành viên của dân số có thể đại diện cho một giải pháp mà không phải là là kết quả tối ưu, nhưng là giải pháp tốt nhất có thể đạt được mà không trở nên tồi tệ hơn trên đường đi.

Hãy tưởng tượng rằng chức năng tập thể dục cho chương trình chồn không chỉ tìm thấy khoảng cách chỉnh sửa, mà có một số khái niệm về "từ" và kiểm tra xem từ cuối cùng của chuỗi có phải là tên của một con vật hay không. Bất kỳ tên động vật nào đạt điểm cao, nhưng "weasel"nhận được một phần thưởng lớn.

Bây giờ điều gì xảy ra nếu "Methinks it is like a walrus"được phát triển? Nó đạt điểm cao. Không phải là chuỗi mục tiêu cuối cùng, nhưng tốt hơn "Methinks it is like a walrut"hoặc các biến thể gần gũi khác có thể đạt được bằng một bước đột biến duy nhất.

Chuỗi hải mã là tối đa cục bộ và tìm kiếm có thể bị kẹt ở đó trừ khi chương trình cho phép điểm số của thế hệ tiếp theo tồi tệ hơn.


1
Có liên quan: youtube.com/watch?v=YT1vXXMsYak - trình diễn chương trình máy tính của Dawkin vào khoảng 12 phút, mặc dù toàn bộ bài giảng đáng xem vì nó mô tả cơ sở lý thuyết cơ bản về sự tiến hóa (dù là sinh học hay mô phỏng) căn cứ.
Periata Breatta

24
Thật vậy, đôi khi bạn sẽ cho phép một tỷ lệ nhất định các thành viên ghi điểm yếu hơn sống sót để tăng "đa dạng di truyền", cũng như đưa ra các đột biến hoàn toàn ngẫu nhiên không dựa trên bất kỳ thành viên hiện có nào.
Jörg W Mittag

@JoshCaswell Cảm ơn vì điều này. Mặc dù tất cả các câu trả lời đều tuyệt vời, tôi sẽ đánh dấu đây là câu trả lời được chấp nhận vì nó bao gồm mọi thứ tôi hỏi và một vài điều tôi chưa hỏi!
Avrohom Yisroel

Vui mừng tôi có thể giúp, @AvrohomYisroel
Josh Caswell

6

Chúng tôi không biết nó sẽ trở nên tốt hơn, chúng tôi biết rằng nó sẽ không trở nên tồi tệ hơn.

Trong mọi thế hệ, không chỉ bao gồm các phần tử con của các phần tử tốt nhất, mà còn bao gồm các phần tử tốt nhất - bản sao nếu bạn muốn. Vì họ vẫn còn hiện diện, họ sẽ ghi điểm như trước. Có nghĩa là nếu không có con cái nào tốt hơn, những người chiến thắng thế hệ trước sẽ chiến thắng một lần nữa - và được biến đổi lại / giống.

Xem xét: Với một cá nhân tổ tiên là một chữ cái, ví dụ A Một đứa trẻ bị đột biến được xác định bằng cách thêm một số, ví dụA1 , , các giải pháp bánh mì chéo được viết với dấu ngoặc quanh cha mẹ, vd(A1B2) Lõi tập thể dục của bất kỳ bài viết cá nhân nào sau nó - cao hơn là tốt hơn[12]

Để trình diễn, hãy xem xét Nhóm 5, trong đó chúng tôi giữ mức tốt nhất 2. và điền vào 1 đột biến của mỗi nhóm, cộng với một giống chéo

Thế hệ 1

  • A [10]
  • B [5]
  • C [4]
  • D [3]
  • E [1]

Giữ A, Bvì họ là hai người giỏi nhất và nạp thêm 3 vị trí khác có con cháu

Thế hệ 2

  • A [10]
  • B [5]
  • (AB) [7]
  • A1 [12]
  • B1 [4]

Giữ A, và (AB), vì họ là 2 người giỏi nhất - Điều này có nghĩa là ông Avẫn sẽ ở trong bể vì hầu hết trẻ em làm việc yếu hơn

Thế hệ 3

  • A [10]
  • (AB) [12]
  • (A(AB)) [14]
  • A2 [số 8]
  • (AB)1 [13]

Giữ (AB)1(A(AB))- lần này không có ông bà nào được duy trì, vì hai đứa con của họ đánh họ. Nhưng nếu (AB1)đã thực hiện chỉ kém hơn một chút, chúng tôi sẽ giữ lại (AB)thay thế.

Điều này tiếp tục cho đến khi điểm số ổn định. Điều đó cho thấy bạn đã đạt được một số loại cực đại cục bộ (có khả năng là cực đại toàn cầu). Một lý do để phát hiện điều này sẽ là nếu các cá nhân tương tự tiếp tục được "nhân bản" vào thế hệ tiếp theo. (mặc dù đối với các sự cố chiều cao có thể mất quá nhiều thời gian, vì vậy có lẽ tốt hơn là chỉ kiểm tra sự cải thiện <một dung sai cụ thể)


1
"Trong mọi thế hệ, không chỉ bao gồm các yếu tố tốt nhất, mà còn bao gồm chính các yếu tố tốt nhất" Điều này phụ thuộc vào việc thực hiện. Một số triển khai không làm điều này. Làm như vậy đôi khi được gọi là "tinh hoa."
jpmc26

4

Nói chung, các thuật toán di truyền hoạt động bằng cách tạo ra một số biến thể (ngẫu nhiên) trên cha mẹ trong mỗi thế hệ. Sau đó, một số chức năng lựa chọn được áp dụng, và con cái phù hợp nhất theo chức năng này còn tồn tại. Vì vậy, con cái không nhất thiết phải tốt hơn vì biến thể là ngẫu nhiên, nhưng kết hợp với lựa chọn bạn sẽ cải thiện theo thời gian.


4
Ah, có vẻ như bài báo có một chút sai lệch. Anh ấy nói " Sinh vật mới, có lẽ rất tốt, Sinh vật thay thế một Sinh vật nghèo " là điều làm tôi bối rối. Tôi đoán nếu anh ta kết hợp vô số sinh vật, thì nhìn chung chúng ta sẽ mong đợi sự gia tăng, mặc dù các sinh vật mới riêng lẻ có thể yếu hơn các sinh vật trước đó. Có đúng không? Cảm ơn
Avrohom Yisroel

@AvrohomYisroel: Chính xác.
JacquesB

1
@AvrohomYisroel: Coi chừng sự hiểu biết gần đúng của những người không chuyên. (Ngoài ra, hãy cẩn thận với "bức tường biệt ngữ" chính xác của các chuyên gia.)
Eric Towers

@EricTowers Vâng, tôi thấy vấn đề! Tôi nghĩ anh ấy là một chuyên gia, đánh giá qua các bài viết trước đây anh ấy đã viết, nhưng rõ ràng anh ấy đã phạm một số sai lầm lớn trong bài viết này.
Avrohom Yisroel

4

Khi tôi nghiên cứu các thuật toán di truyền ở trường đại học, nó đã được giải thích như sau:

Hãy tưởng tượng một giải pháp là sự kết hợp của "gen", trong đó mỗi gen ảnh hưởng đến toàn bộ giải pháp đó như thế nào. Khi hai giải pháp được giao phối, gen của chúng được chọn ngẫu nhiên từ mỗi bố mẹ.

Bây giờ, nếu gen dẫn, nói chung, để giải pháp tốt, tần số trong nhóm gen tăng lên. Trong trường hợp cực đoan, gen sẽ thống trị dân số.

Vì vậy, khi bạn nghĩ về các thuật toán di truyền (và sự tiến hóa nói chung), bạn không nên nghĩ về các cá nhân. Bạn nên nghĩ về gen và quần thể nói chung. Ngay cả khi một giải pháp "tốt nhất" bị mất, điều đó không có nghĩa là gen của nó bị mất.

Ngoài ra còn có ý tưởng về tinh hoa trong các thuật toán di truyền. Điều đó có nghĩa là, (các) giải pháp tốt nhất luôn được lưu giữ qua nhiều thế hệ. Điều này có thể tăng tốc độ hội tụ của thuật toán, nhưng thuật toán dễ bị mắc kẹt hơn trong tối ưu cục bộ.


2

Các thuật toán GA không mang tính quyết định, chúng không đảm bảo có được sự cải tiến trong mỗi thế hệ và chúng cũng không đảm bảo tìm được tổng số tối ưu. Tuy nhiên, giai đoạn lựa chọn GA, sử dụng chức năng tập thể dục, có nhiều khả năng "giải pháp tốt" sẽ tồn tại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.