Используя эволюционный алгоритм, нейронная сеть научилась играть в компьютерную игру Марио.
Нейронная сеть, получает на свой вход небольшое графическое изображение, которое представляет собой спрайт из игрового окна.
Далее, входной сигнал проходит через ряд искусственных нейронов, и преобразуется в команды для контроллера — нажатие клавиш управляющих движением Марио.
Таким образом, используется очень простая нейронная сеть, состоящая менее чем из десятка нейронов – которая со временем, становится способна выполнить даже такую сложную задачу, как провести Марио через весь игровой уровень.
Для обучения нейронной сети и настройки весов связей между нейронами, в данном случае, используется эволюционный (генетический) алгоритм.
Этот алгоритм, сначала генерирует несколько случайных нейронных сетей, которые затем «эволюционируют». Целевой (фитнес-) функцией, в данном случае выступает как далеко и как быстро Марио проходит игровой уровень.
Лучшие сети каждого поколения объединяются, и процесс продолжается для следующего поколения.
Потребовалось всего 34 поколения, чтобы Марио смог пройти уровень до конца.
Ссылки
исходный код
статья о «NEAT» (NeuroEvolution of Augmenting Topologies) — Kenneth O. Stanley, Risto Miikkulainen — Evolving Neural Networks through Augmenting Topologies (PDF)
UPD 2016-07-18
NEAT — NeuroEvolution of Augmenting Topologies
http://nn.cs.utexas.edu/?neat
http://www.cs.ucf.edu/~kstanley/neat.html
По теме
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN
RC-машинка управляется нейронной сетью