Gelecek neslin daha iyi olacağını nasıl bilebiliriz?


32

Son zamanlarda onlara birleştirici evrim adını verdiği bu MSDN makalesinde genetik algoritmalarla tanıştım, fakat aynı şey gibi görünüyor ve iki potansiyel çözümün birleştirilmesinin her zaman en azından olduğu gibi yeni bir çözüm üreteceğini anlamakta zorlanıyorum ebeveynleri kadar iyi.

Bu neden böyle? Elbette birleştirmek daha kötü bir şey üretebilir.

Anladığım kadarıyla, algoritma, bir türün dişi ve erkeği yavru ürettiğinde bu yavruların her iki ebeveyne ait olacağı fikrine dayanıyor. Bazı kombinasyonlar daha iyi, bazıları daha kötü ve bazıları da iyi olacaktır. Daha iyileri (“daha ​​iyi” tanımı ne olursa olsun uygun), gelişmiş özelliklere sahip yavruları hayatta kalma ve üretme şansını arttırır. Ancak, daha zayıf olan kombinasyonlar olacaktır . Bu neden GA ile ilgili bir sorun değil?


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?- Zayıf kombinasyonlar atıldığı için.
Robert Harvey,

6
Gelecek neslin daha kötü olmayacağını biliyoruz çünkü iyi olanları atmıyoruz ama kötü olanları atıyoruz. Ve bazı iyi olanları birleştirmek daha iyi bir tane yapmak için makul bir şans var, ancak bu garanti edilmez.
user253751

7
Why isn't this an issue with GA?Öyle ya da daha doğrusu olabilir. GA'ları kullanarak optimize etmek için kullanılan birçok (çok) parametreden biri popülasyon büyüklüğüdür: çok düşükse, sadece daha zayıf bireyler üretebilirsiniz, ancak çok yüksekse, uygunluk fonksiyonuyla ilişkili hesaplama süresi çok yüksek olabilir.
Loufylouf

3
Bu, üreme ile yabani ot arasında farktır : üreme aşaması daha kötü yavrular üretebilir (irade), ancak yabani ot yetiştirme aşaması, bir sonraki üreme aşamasından önce en kötü performansı ortadan kaldıracak (ortadan kaldıracak) olacaktır.
TripeHound

Herkese teşekkürler. Eğer doğru anlarsam, beni izinden alan makalede ifade ettiği gibiydi. " Yeni, muhtemelen çok iyi çocuk organizması fakir bir organizmanın yerini alıyor " diyerek sorumu sordu. Yanlış görünüyordu :)
Avrohom Yisroel

Yanıtlar:


43

Genetik bir algoritma popülasyonu temizleyerek her nesilde iyileşmeye çalışır. Her üye uygunluk fonksiyonuna göre değerlendirilir ve sadece yüksek puan alan bölümlerinin çoğaltılmasına izin verilir.

Yine de haklısın: Bir sonraki neslin selefinin puanına göre gelişeceğine dair hiçbir garanti yok.

Dawkins'in gelincik programını düşünün : İpin "evrimleşmesi" "Methinks it is like a weasel". Bir rastgele dizeden oluşan popülasyondan başlayarak, uygunluk fonksiyonu bir sonraki nesli üretmek için uğraştığı en yakın metinsel eşleşmeyi değerlendirir. Basit bir çapraz üretimde, birleştirilen iki yüksek skorlu dizi, çok daha düşük puan alan yavruları çok kolay bir şekilde üretebilir. Tek bir yüksek-fitnes dizisinin "aseksüel" rastgele mutasyonu bile çocuğun formunu düşürebilir.

Kayda değer, bence, bu mutlaka bir kusur değildir. Bu tür bir arama ile, yerel maksima fikri var . Nüfusun bir üyesi , optimum sonuç olmayan bir çözümü temsil edebilir , ancak yolda kötüleşmeden elde edilebilecek en iyi çözümdür .

Gelincik programı için uygunluk fonksiyonunun sadece düzenleme mesafesini bulmakla kalmayıp, aynı zamanda "kelime" kavramına sahip olduğunu ve ipin son sözünün bir hayvanın adı olup olmadığını test ettiğini hayal edin. Herhangi bir hayvan ismi iyi puan "weasel"alır , ancak büyük bir bonus alır.

Şimdi "Methinks it is like a walrus"evrimleştiğinde ne olur ? İyi puanlar. Nihai hedef dizenin yanı sıra, ancak "Methinks it is like a walrut"tek bir mutasyon aşaması ile ulaşılabilecek diğer varyasyonlardan daha iyi veya daha iyi varyasyonlar.

Deniz aygırı dize yerel maksimumdur ve program gelecek neslin puanının daha kötü olmasına izin vermediği sürece oraya sıkışıp kalabilir .


1
İlgili: youtube.com/watch?v=YT1vXXMsYak - Dawkin'in bilgisayar programının tanıtımı yaklaşık 12 dakika sürüyor, ancak dersin tamamı evrimin (biyolojik veya benzetilmiş olsun) hangi temel teorik temeli tanımladığı gibi izlemeye değer olsa da topraklı.
Periata Breatta,

24
Aslında, bazen “genetik çeşitliliği” arttırmak için hayatta kalabilmenin belirli bir yüzdesinin hayatta kalmasına izin vermenin yanı sıra, mevcut herhangi bir üyeye dayanmayan tamamen rastgele mutasyonlar ortaya çıkaracaksınız.
Jörg W Mittag

@JoshCaswell Bunun için teşekkürler. Tüm cevaplar mükemmel olsa da, sorduğum her şeyi ve henüz sormadığım birkaç şeyi kapsayan bir cevap olarak işaretleyeceğim!
Avrohom Yisroel

Yardım edebileceğime sevindim, @AvrohomYisroel
Josh Caswell

6

Daha iyi olacağını bilmiyoruz, daha da kötüleşmeyeceğini biliyoruz.

Her nesilde, sadece en iyi elemanların gözlüğünden ibaret değil, aynı zamanda en iyi unsurların kendileri de içerir - klonlar. Hala mevcut olduklarından, öncekiyle aynı olacaklardır. Yani, yavruların hiçbiri daha iyi olmazsa, önceki nesiller kazananlar tekrar kazanacak - ve tekrar değiştirilecek / üreyeceklerdir.

Şunu düşünün: Progenitör bir bireyin bir mektubu olmasıyla, örneğin A mutasyona uğramış bir çocuk bir sayı ekleyerek tanımlanır, örneğin A1, ebeveynlerin etrafına parantez ile çapraz ekmekli çözümler yazılır, örneğin (A1B2) daha sonra daha iyi[12]

Gösteri için, en iyi 2'yi tuttuğumuz 5'i bir havuz olarak düşünün ve her birinin 1 mutasyonunu ve bir çapraz cinsi doldurun

1. nesil

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

Tutun A, Bonlar orada torunları ile doldurma iyi ikisini ve diğer 3 yarıklar gibi,

2. nesil

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

Tutun Ave (AB)en iyisi onlar olduğu için 2 - Bu A, çocukların çoğu zayıf çalıştıkça dedenin hala havuzda olacağı anlamına gelir.

3. nesil

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

Saklayın (AB)1ve (A(AB))- bu kez çocuklarından ikisi onları dövdüğü için hiçbir büyükanne ve büyükbaba korunmadı. Ancak (AB1)biraz daha kötü bir performans sergilediyse (AB)bunun yerine saklardık .

Bu, skor sabitlenene kadar devam eder. Bu, bir tür yerel maksimaya (potansiyel olarak global bir maksima) çarptığınızı gösterir. Bunu tespit etmenin bir nedeni, aynı bireylerin gelecek nesle "klonlanmaya" devam etmesidir. (çok uzun süren yüksek boyutlu problemler için, belki de sadece iyileştirmeyi kontrol etmek daha iyi <belirli bir tolerans)


1
“Her nesilde, en iyi unsurların göze çarpmasından ibaret değildir, aynı zamanda en iyi unsurları da içerir” Bu uygulamaya bağlıdır. Bazı uygulamalar bunu yapmaz. Bunu yapmak bazen "elitizm" olarak adlandırılır.
jpmc26

4

Genel olarak, genetik algoritmalar her nesildeki ebeveynlerde bir dizi (rastgele) varyasyon oluşturarak çalışır. Daha sonra bazı seçim fonksiyonları uygulanır ve bu işleve göre en uygun yavrular hayatta kalır. Yavru varyasyon rastgele olduğundan daha iyi olması gerekmez, ancak Yani kombine seçimle zamanla iyileşme olsun.


4
Ah, sanırım yazı biraz yanıltıcıydı. " Yeni, muhtemelen çok iyi çocuk organizması, fakir bir organizmanın yerini alıyor " dedi. Sanırım bir sürü organizmayı birleştiriyorsa , bireysel yeni organizmalar öncekinden daha zayıf olsa bile, genel olarak bir artış bekleyeceğiz. Bu doğru mu? Teşekkürler
Avrohom Yisroel

@ AvrohomYisroel: Kesinlikle.
JacquesB

1
@AvrohomYisroel: Uzman olmayanların yaklaşık anlayışına dikkat edin. (Ayrıca, uzmanların hassas "jargon duvarı" na dikkat edin.)
Eric Towers,

@EricTowers Evet, sorunu görüyorum! Yazdığı önceki makalelere göre uzman olduğunu sanıyordum, ama açıkça bu makalede bazı büyük hatalar yapmış gibi görünüyor.
Avrohom Yisroel

4

Üniversitede genetik algoritmalar okuduğumda şöyle açıklandı:

Bir çözümün, her genin çözümün bir bütün olarak ne kadar iyi olduğunu etkilediği "genlerin" bir kombinasyonu olduğunu hayal edin. İki çözelti çiftleştirildiğinde, genler her bir ebeveynden rastgele toplanır.

Şimdi, eğer gen, genellikle iyi bir çözüme yol açarsa, gen havuzundaki frekansı artar. Aşırı durumda, gen nüfusu hakim olacaktır.

Bu yüzden genetik algoritmalar (ve genel olarak evrim) hakkında düşündüğünüz zaman, bireyler hakkında düşünmemelisiniz. Genleri ve popülasyonları bir bütün olarak düşünmelisin. Bir "en iyi" çözüm kaybedilse bile, bu onun kaybolduğu anlamına gelmez.

Genetik algoritmalarda elitizm fikri de var. Bu, en iyi çözümlerin her zaman nesiller boyunca saklandığı anlamına gelir. Bu, algoritmanın yakınsamasını hızlandırabilir, ancak algoritmanın yerel optimuma sıkışması daha kolaydır.


2

GA algoritmaları deterministik değildir, her nesilde bir iyileştirme elde etmeyi garanti etmezler ve ayrıca toplam bir optimum bulmayı da garanti etmezler. Bununla birlikte, bir zindelik işlevini kullanan bir GA'nın seçim aşaması, "iyi çözümlerin" hayatta kalma ihtimalini arttırır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.