Вступление
Одним обычным днём я сидел в интернете, вдруг его отключили. Вспомнив про старую пасхалку от Google, а именно про бегающего динозаврика на странице ошибки. Изучая машинное обучение и вспомнив проект Mari/O, я решил сделать что-то похожее, хотелось чтобы искусственная нейронная сеть научилась играть в «Динозаврика» на уровне реального человека.
Для выполнения поставленной цели было решено использовать Генетические алгоритмы, то есть заставить динозавров ‘Эволюционировать’.
Генетический алгоритм
Так что такое этот генетический алгоритм?
Генети́ческий алгори́тм — это алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе. Является разновидностью эволюционных вычислений, с помощью которых решаются оптимизационные задачи с использованием методов естественной эволюции, таких как наследование, мутации, отбор и кроссинговер. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.
Разработка
Принцип работы нашей программы (как мы уже говорили) основаны на машинном «обучение с подкреплением». Описать принцип работы я постараюсь в нескольких словах:
В каждом поколении выбираются несколько лучших представителей. На их основе создаётся новое. На основе различного «веса» нейронных связей и входной информации (дистанция до преграды, и её высота) принимается решение о действие конкретного представителя вида.
Надеюсь всё понятно.
Заключение
В итоге наша «Генетическая модель» достигла 332 тысячи очков за 219 генераций.
Есть возможный потенциал в достижении больших результатов.
Но пока ещё стоит над многим поработать.
P.S.: Спасибо за прочтение! Кстати мы хотели показать в прямом эфире процесс обучения нейронки. Посмотреть можно тут.
Upd. Тем временем программа набрала 942 тысячи очков.