Алгоритм машинного обучения Flappy Bird |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-08-30 15:23 нейросети новости, машинное обучение python, генетические алгоритмы Я познакомлю вас с полным туториалом на HTML5 с демо по алгоритму машинного обучения видеоигре Flappy Bird. Цель этого эксперимента — написать игровой контроллер искусственного интеллекта на основе нейросетей и генетического алгоритма.
То есть мы хотим создать ИИ-робота, который сможет учиться оптимальной игре во Flappy Bird. В результате наша маленькая птица сможет спокойно пролетать через препятствия. В наилучшем сценарии она не умрёт никогда. Прочитав теорию, лежащую в основе этого проекта, можно скачать исходный код в конце этого туториала. Весь код написан на HTML5 с использованием фреймворка Phaser. Кроме того, мы использовали библиотеку Synaptic Neural Network для реализации нейросети, чтобы не создавать её с нуля. Демо Для начала посмотрите демо, чтобы оценить алгоритм в действии:Запустить в полноэкранном режиме Видеопрезентация В дополнение к демо вы можете посмотреть короткое видео с простым объяснением алгоритма. Понравится тем, кто любит получать информацию быстро!Что такое «алгоритм машинного обучения» По формулировке Артура Самуэля 1959 года, машинное обучение — это способ заставить компьютеры работать без программирования в явной форме. В общем случае, это процесс тонкой настройки обучения, постепенно улучшающий исходную случайную систему.То есть целью здесь является создание искусственного интеллекта, который сможет найти правильное решение из плохой системы тонкой настройкой параметров модели. Для этого в алгоритме машинного обучения используется множество различных подходов. Конкретно в этом проекте, основной подход к машинному обучению (machine learning algorithm, ML) основан на нейроэволюции. В этой форме машинного обучения используются эволюционные алгоритмы, такие как генетический алгоритм (genetic algorithm, GA), для обучения искусственных нейронных сетей (artificial neural networks, ANN). То есть в нашем случае можно сказать, что ML = GA + ANN. Искусственная нейронная сеть Искусственная нейронная сеть — это подмножество алгоритма машинного обучения. За основу в ней взяты структура и функции биологических нейронных сетей. Эти сети созданы из множества нейронов, передающих сигналы друг другу.То есть для создания искусственного мозга нам нужно симулировать нейроны и соединить их, чтобы они сформировали нейронную сеть. Стандартная искусственная нейронная сеть состоит из слоя входных данных, одного или нескольких скрытых слоёв и слоя выходных данных. В каждом слое есть несколько нейронов. Нейроны входных и выходных данных присоединены непосредственно к внешней среде. Скрытые нейроны соединяются между ними. В этом проекте каждый объект (птица) имеет собственную нейронную сеть, используемую в качестве ИИ-мозга для прохождения игры. Она состоит из следующих трёх слоёв:
На рисунке ниже показана архитектура нейронной сети для этого примера: Генетический алгоритм Когда мы обсуждали алгоритм машинного обучения, то говорили, что для обучения и совершенствования нейронных сетей используется генетический алгоритм.Генетический алгоритм — это техника оптимизации на основе поиска, копирующая естественный отбор и генетику. В ней используется такое же сочетание отбора, кроссинговера и мутаций для изменения исходной случайной популяции. Вот основные этапы реализации нашего генетического алгоритма:
Функция приспособленности В дополнение к генетическому алгоритму (этап 3), мы рассмотрим здесь подробнее функцию приспособленности — что это такое и как её определить.Поскольку мы хотим, чтобы популяция эволюционировала из наилучших объектов, нам необходимо определить функцию приспособленности. В общем случае, функция приспособленности — это метрика, измеряющая качество объекта. Если у нас будет метрика качества каждой птицы, мы сможем выбрать самые приспособленные объекты и использовать их для воссоздания следующего поколения. В этом проекте мы вознаграждаем птицу в прямой зависимости от проделанного расстояния. Кроме того, мы наказываем её по текущему расстоянию до ближайшего промежутка. Таким образом мы сможем различать птиц, пролетевших одинаковое расстояние. Подведём итог: наша функция приспособленности — это разность между общим расстоянием, проделанным птицей, и текущим расстоянием до ближайшего промежутка. Стратегия замены В дополнение к генетическому алгоритму (этап 4), вот этапы применения естественной эволюции к умирающему поколению. В сущности, выживают лучшие объекты, а их потомки заменяют наихудшие объекты следующим образом:
Исходный код И вот, наконец, ссылка для скачивания исходного кода:https://github.com/ssusnic/Machine-Learning-Flappy-Bird Алгоритм машинного обучения для Flappy Bird — заключение В этом туториале мы успешно реализовали ИИ-робота для обучения игре во Flappy Bird. В результате нескольких итераций мы можем получить почти неуязвимого игрока. Для достижения этой цели мы использовали два подхода к алгоритмам машинного обучения: искусственные нейронные сети и генетический алгоритм.Для эксперимента можете попробовать изменить некоторые из параметров в коде и посмотреть, что произойдёт. Например, вы можете изменить количество нейронов в скрытом слое или количество объектов в популяции. Кроме того, можете попробовать изменить функции приспособленности. Более того, попробуйте менять некоторые физические параметры — расстояния между препятствиями, гравитацию и так далее. Попробуйте также применить тот же подход к эволюции в других играх. Источник: habrahabr.ru Комментарии: |
|