Як ми можемо знати, що наступне покоління буде кращим?


32

Нещодавно я познайомився з генетичними алгоритмами в цій статті про MSDN , в якій він називає їх комбінаторною еволюцією, але, здається, це те саме, і я намагаюся зрозуміти, як поєднання двох потенційних рішень завжди дасть нове рішення, принаймні як добре, як його батьки.

Чому це так? Безумовно, комбінування може призвести до чогось гіршого.

Наскільки я розумію, алгоритм заснований на концепції, що коли самець і самка виду народжують потомство, це потомство матиме характеристики обох батьків. Деякі комбінації будуть кращими, деякі гіршими, а деякі так само хорошими. Ті, хто краще (для будь-якого визначення поняття «краще»), мають більше шансів вижити і створити потомство, що має покращені характеристики. Однак будуть комбінації, які слабкіші. Чому це не проблема з GA?


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?- Тому що слабші комбінації відкидаються.
Роберт Харві

6
Ми знаємо, що наступне покоління не буде гіршим, тому що ми не викидаємо хороших, але ми викидаємо погані. І є розумний шанс, що поєднання деяких хороших зробить ще кращим, але це не гарантується.
користувач253751

7
Why isn't this an issue with GA?Ну, це, а точніше, може бути. Одним із багатьох (багатьох) параметрів для оптимізації використання ГА є розмір популяції: якщо він занадто низький, ви можете виробляти лише слабкіших осіб, але якщо він занадто високий, час обчислень, пов'язаний з функцією фітнесу, може бути занадто високим.
Loufylouf

3
Це різниця між селекцією та прополкою : стадія розмноження може (призведе) до погіршення потомства, але стадія прополки (повинна) усуне найгірші результати до наступного етапу розмноження.
TripeHound

Дякую всім вам. Якщо я правильно розумію, мене викинув із сліду саме той спосіб, як він це висловив у статті. Він сказав: " Новий, імовірно, дуже добрий дитячий організм замінює поганий організм ", що викликало моє запитання. Здається, це було неправильно :)
Аврохом Ісроель

Відповіді:


43

Генетичний алгоритм намагається вдосконалити в кожному поколінні шляхом вибивання популяції. Кожен учасник оцінюється відповідно до функції фітнесу, і для відтворення допускається лише висока частина балів.

Ти прав, правда: немає жодної гарантії, що наступне покоління покращиться за результатами попередника.

Розглянемо програму "Донецьк" : "еволюція" струни "Methinks it is like a weasel". Починаючи з популяції випадкових струн, функція фітнесу оцінює найближчий текстовий збіг, який обурений для отримання наступного покоління. За допомогою простого перехресного відтворення, дві струнні високі бали, які поєднуються, можуть дуже легко створити потомство з меншим балом. Навіть «безстатеві» випадкові мутації однієї струни з високою придатністю можуть знизити придатність дитини.

Думаю, варто зауважити, що це не обов'язково є вадою. З таким видом пошуку виникає ідея локальних максимумів . Член населення може представляти рішення, яке не є оптимальним результатом, але це найкраще, що можна досягти, не погіршуючись на шляху.

Уявіть, що функція фітнесу для програми «нітка» не тільки знаходить відстань редагування, але має певне поняття «слово» і перевіряє, чи є останнє слово рядка ім'ям тварини. Будь-яке ім'я тварини забиває добре, але "weasel"отримує великий бонус.

Тепер, що станеться, якщо "Methinks it is like a walrus"розвивається? Це добре балів. Не так, як кінцева цільова струна, але краще, ніж "Methinks it is like a walrut"чи інші близькі зміни, до яких можна досягти за один крок мутації.

Рядок моржів - це локальний максимум, і пошук може застрягнути там, якщо програма не дозволить оцінці наступного покоління бути гіршою.


1
Доречно : youtube.com/watch?v=YT1vXXMsYak - демонстрація комп’ютерної програми Докінза проходить приблизно через 12 хвилин, хоча всю лекцію варто переглянути, оскільки вона описує основну теоретичну основу, на якій відбувається еволюція (біологічна чи модельована). заземлений.
Periata Breatta

24
Дійсно, ви іноді дозволятимете певному відсотку слабкіших учасників скорингу вижити, щоб збільшити "генетичну різноманітність", а також запровадити абсолютно випадкові мутації, які взагалі не базуються на жодному члені.
Йорг W Міттаг

@JoshCaswell Дякую за це. Хоча всі відповіді були чудовими, я відзначу це як прийняте, оскільки воно охоплює все, що я просив, і пару речей, яких я ще не запитував!
Avrohom Yisroel

Радий, що можу допомогти, @AvrohomYisroel
Джош

6

Ми не знаємо, що стане краще, ми знаємо, що гірше не стане.

У кожному поколінні він не складається лише з осідання кращих елементів, але також включає в себе найкращі елементи - клони, якщо ви хочете. Оскільки вони все ще присутні, вони оцінюватимуть так само, як і раніше. Це означає, що якщо ніхто з нащадків не буде кращим, переможці попередніх поколінь знову виграють - і будуть повторно мутовані / розмножуються.

Поміркуйте: коли особа-попередник є буквою, наприклад, A мутованою дитиною визначається додавання цифри, наприклад A1, розчини хресного хліба, що записуються дужками навколо батька, наприклад. (A1B2) І ядро ​​фітнесу будь-якого окремого написаного після нього - вище, тим краще[12]

Для демонстрації розглянемо пул 5, де ми зберігаємо найкраще 2. і заповнюємо по 1 мутації кожного, плюс крос-порода

Покоління 1

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

Тримайте A, Bяк вони найкращі два, і поповніть інші 3 слоти там нащадками

Покоління 2

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

Тримайте A, і (AB), оскільки вони найкращі 2 - Це означає, що дідусь Aвсе ще буде в басейні, оскільки більшість дітей працюють слабше

Покоління 3

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

Тримайте (AB)1і (A(AB))- цього разу жодних бабусь і дідусів не підтримували, оскільки двоє їх дітей били їх. Але якби (AB1)виступили трохи гірше, ми б (AB)замість цього збереглися .

Це триває до тих пір, поки оцінка не стане стабільною. Що вказує на те, що ви потрапили в якісь локальні максимуми (можливо, глобальні максимуми). Причиною цього було б виявити, якщо ті самі особи продовжують «клонуватись» до наступного покоління. (хоча для проблем з високими розмірами, які можуть зайняти занадто багато часу, тому краще, можливо, просто перевірити поліпшення <конкретний допуск)


1
"У кожному поколінні не складається лише з осідання кращих елементів, але також входять самі кращі елементи". Це залежить від реалізації. Деякі реалізації цього не роблять. Це іноді називають "елітарністю".
jpmc26

4

Взагалі генетичні алгоритми працюють, створюючи ряд (випадкових) варіацій батьків у кожному поколінні. Потім застосовується деяка функція відбору, і потомство, яке найбільше відповідає цій функції, виживає. Таким чином, потомство не обов’язково краще, оскільки варіація є випадковою, але в поєднанні з селекцією ви з часом покращуєтесь.


4
Так, здається, стаття була трохи оманливою. Він сказав: " Новий, імовірно, дуже добрий дитячий організм замінює поганий організм ", саме це мене бентежило. Я думаю, якщо він поєднує в собі навантаження організмів, то в цілому ми б очікували збільшення, навіть якщо окремі нові організми можуть бути слабкішими за попередні. Це так? Спасибі
Аврохому Ісроелу

@AvrohomYisroel: Саме так.
ЖакБ

1
@AvrohomYisroel: Остерігайтеся приблизного розуміння неспеціалістів. (Також остерігайтеся точності "стіни жаргону" фахівців.)
Eric Towers

@EricTowers Так, я бачу проблему! Я думав, що він є експертом, судячи з попередніх статей, написаних ним, але він, очевидно, в цій статті допустив деякі великі помилки.
Аврохом Ісроель

4

Коли я вивчав генетичні алгоритми в коледжі, це було пояснено так:

Уявіть собі рішення - це комбінація "генів", де кожен ген впливає на те, наскільки хорошим є рішення в цілому. Коли сполучаються два розчини, гени відбираються випадковим чином у кожного з батьків.

Тепер, якщо ген призводить, як правило, до хорошого рішення, частота в генофонді збільшується. В крайньому випадку, ген буде домінувати в популяції.

Отже, коли ви думаєте про генетичні алгоритми (і еволюцію взагалі), ви не повинні думати про людей. Вам слід думати про гени та популяції в цілому. Навіть якщо втрачено одне «найкраще» рішення, це не означає, що гени втрачені.

Існує також ідея елітизму в генетичних алгоритмах. Це означає, що найкраще рішення завжди зберігається протягом поколінь. Це може прискорити зближення алгоритму, але алгоритм простіше застрягнути в локальній оптимі.


2

Алгоритми GA не є детермінованими, вони не гарантують покращення в кожному поколінні, а також не гарантують знайти загальний оптимум. Однак фаза відбору ГА, використовуючи функцію фітнесу, робить більш імовірним, що "хороші рішення" виживуть.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.