Одна из самых крутых особенностей машинного обучения и искусственного интеллекта заключается в том, что большинство алгоритмов основаны на природе. Пусть это будет нейронная сеть (имитирующая работу нашего мозга) или оптимизация муравьиной колонии (использующая то, как муравьи находят пищу, чтобы найти глобальные решения проблем), люди просто пытаются играть в бога, так что будьте сумасшедшим ученым, получайте удовольствие и узнать об обучении!

Генетические алгоритмы — это математические модели, созданные для того, чтобы попытаться использовать хорошие статистические свойства генетики, в частности то, как природа выбирает «наиболее подходящие» гены в процессе эволюции. Генетические алгоритмы можно отнести к категории алгоритмов «поиска» или «оптимизации» в машинном обучении. Они просто используются для того, чтобы очень быстро найти наиболее «подходящее» решение проблемы. Идея «приспособленности» действительно важна и является краеугольным камнем для понимания поведения ГА.

GA обычно имеет 4 этапа, через которые они проходят (не волнуйтесь, каждый этап будет подробно изучен). Во-первых, поскольку ГА имитирует популяцию в природе, мы предполагаем, что нам дана «популяция» для работы.

  1. Фитнес. Оцените физическую форму каждого члена населения. Обычно это делается с помощью «фитнес-функции». Это уравнение очень важно, и то, что вы здесь выберете, повлияет на то, насколько быстро и точно ваша популяция сойдется к решению. Это ОБЯЗАТЕЛЬНО будет изучено дальше, когда мы реализуем нашу GA.
  2. Естественный отбор. Как было сказано ранее, мы пытаемся «выбрать» наиболее оптимальное решение проблемы, подражая природе. В природе с «плохими» решениями обращаются так: они удаляются, устраняются, исчезают. После того, как пригодность каждого решения была рассчитана, пришло время удалить «плохие» или непригодные члены (решения) популяции. Это делается с помощью порогового значения пригодности, случайного выбора или любого другого метода, который вы считаете оптимальным! Вот что делает GA по-настоящему крутым, потому что каждая GA уникальна для вас!
  3. Разведение — теперь, когда ваша популяция сократилась в результате естественного отбора, вам нужно создать новых членов общества! Это делается путем смешивания генов родительского раствора. В биологии, когда гены смешиваются, у вас может быть множество типов кроссовера. Обычно это 1, 2 или 3 точки пересечения. Дайте бегло прочитать кроссовер здесь. Это будет объяснено более подробно во время реализации нашего ГА. Точно так же, как и в естественных условиях, выбор сети для разведения может быть основанным на пригодности, случайным, вероятностным и т. д. Проявите творческий подход!
  4. Мутация — лично мой любимый этап! Мутация — это именно то, на что это похоже. Это когда меняется «генетика» каждого члена популяции. Вы можете сделать возможность изменения вероятностной, основанной на значении пригодности, случайной и т. д. Обычно это делается вероятностно. Например, у каждого члена общества есть шанс мутировать 0,01%. Вам (создателю) предстоит определить, КАКИМ будет «изменение» с точки зрения генетического состава каждого члена популяции. С вами изменить половину генетического макияжа? Отдельный элемент генетического состава? Это все зависит от вас!
  5. Новая популяция. Наконец, после всех 4 шагов у вас появилась новая популяция! Надеюсь, пополнится более подходящими участниками! На этом этапе вы проверяете и видите, есть ли у кого-либо из новых членов вашего общества тот уровень пригодности, который вы ищете. Если никто этого не делает, ваш алгоритм повторяет шаги 1–4 снова и снова, пока не найдет члена общества, обладающего искомой физической ценностью. Если значение пригодности найдено, поздравляем! у вас есть оптимальное решение!

В следующих постах мы определим нашу проблему, поймем ограничения дизайна GA и, наконец, сформулируем фактическое решение с кодом Python. Следующий пост из этой серии — здесь.