Я познакомлю вас с полной Учебное пособие по HTML5 от демо до алгоритм машинного обучения видео игра Flappy Bird .
Цель этого эксперимента — написать игровой контроллер.
искусственный интеллект основанный на нейронные сети И генетический алгоритм .
То есть мы хотим создать робота с искусственным интеллектом, который сможет научиться оптимально играть в Flappy Bird. В результате наша птичка сможет безопасно летать через препятствия.
В лучшем случае она никогда не умрет. Прочитав теорию, лежащую в основе этого проекта, вы можете скачать исходный код в конце этого руководства.
Весь код написан на HTML5 с использованием Фреймворк Фазера .
Кроме того, мы использовали Библиотека нейронной сети Synaptic реализовать нейросеть, чтобы не создавать ее с нуля.
Демо
Сначала посмотрите демо, чтобы оценить алгоритм в действии:Запустить в полноэкранном режиме
Видео презентация
Помимо демо, вы можете посмотреть короткое видео с простым объяснением алгоритма.
Понравится тем, кто любит быстро получать информацию!
Что такое «алгоритм машинного обучения»
Как сформулировал Артур Сэмюэл в 1959 году, машинное обучение — это способ заставить компьютеры работать без явного программирования.В общем, это процесс тонкой настройки обучения, который постепенно улучшает исходную случайную систему.
То есть цель здесь — создать искусственный интеллект, который сможет найти правильное решение из плохой системы путем тонкой настройки параметров модели.
Для достижения этой цели алгоритм машинного обучения использует множество различных подходов.
Конкретно в этом проекте основной подход к алгоритму машинного обучения (МО) основан на нейроэволюции.
Эта форма машинного обучения использует эволюционные алгоритмы, такие как генетический алгоритм (ГА), для обучения искусственных нейронных сетей (ИНС).
То есть в нашем случае можно сказать, что ML = GA + ANN.
Искусственная нейронная сеть
Искусственная нейронная сеть — это подмножество алгоритма машинного обучения.Он основан на структуре и функциях биологических нейронных сетей.
Эти сети создаются из множества нейронов, передающих сигналы друг другу.
То есть, чтобы создать искусственный мозг, нам нужно смоделировать нейроны и соединить их так, чтобы они образовали нейронную сеть.
Стандартная искусственная нейронная сеть состоит из слоя входных данных, одного или нескольких скрытых слоев и слоя выходных данных.
В каждом слое имеется несколько нейронов.
Входные и выходные нейроны напрямую связаны с внешней средой.
Между ними соединяются скрытые нейроны.
В этом проекте каждый объект (птица) имеет свою нейронную сеть, которая используется в качестве ИИ-мозга для завершения игры.
Он состоит из следующих трех слоев:
- входной слой с двумя нейронами представляет то, что видит птица:
- горизонтальное расстояние до ближайшего зазора
- разница высот с ближайшим интервалом
- скрытый слой с шестью нейронами
- выходной слой с одним нейроном, создающим действие:
- если выход > 0,5, то делайте рывок, иначе ничего не делайте
Генетический алгоритм
Когда мы обсуждали алгоритм машинного обучения, мы говорили, что генетический алгоритм используется для обучения и улучшения нейронных сетей.Генетический алгоритм — это метод оптимизации на основе поиска, который воспроизводит естественный отбор и генетику.
Он использует ту же комбинацию отбора, кроссинговера и мутации для изменения исходной случайной популяции.
Вот основные этапы реализации нашего генетического алгоритма:
- создать начальную популяцию из 10 объектов (птиц) с случайные нейронные сети
- позволить всем объектам играть одновременно, используя свои собственные нейронные сети
- Для каждого объекта вычисляем его функцию фитнес оценить его качество (подробнее см.
раздел Фитнес-функция )
- после смерти всех объектов мы оцениваем текущее поколение для создания нового с помощью генетических операторов (подробнее см.
раздел Стратегия замены )
- вернемся к этапу 2
Фитнес-функция
Помимо генетического алгоритма (шаг 3), здесь мы подробнее рассмотрим функцию приспособленности — что это такое и как ее определить.Поскольку мы хотим, чтобы популяция развивалась из лучших вариантов, нам нужно определить функцию приспособленности.
В общем, функция приспособленности — это метрика, измеряющая качество объекта.
Если у нас есть показатель качества каждой птицы, мы можем выбрать наиболее подходящие объекты и использовать их для воссоздания следующего поколения.
В этом проекте мы вознаграждаем птицу прямо пропорционально пройденному расстоянию.
Кроме того, мы наказываем ее в соответствии с текущим расстоянием до ближайшего разрыва.
Таким образом, мы можем различать птиц, пролетевших одинаковое расстояние.
Подведем итог: наша фитнес-функция — это разница между общим расстоянием, пройденным птицей, и текущим расстоянием до ближайшего промежутка.
Стратегия замены
Помимо генетического алгоритма (шаг 4), здесь приведены шаги по применению естественной эволюции к умирающему поколению.По сути, лучшие объекты выживают, а их потомки заменяют худшие объекты следующим образом:
- сортируем объекты текущего поколения по уровню их приспособленности
- мы выбираем четыре лучших объекта (победителя) и передаем их непосредственно следующему поколению
- создать одного ребенка в результате скрещивания двух лучших победителей
- мы создаем трех потомков в результате скрещивания двух случайных победителей
- создать двух детей как прямые копии двух случайных победителей
- Мы применяем случайные мутации к каждому потомку, чтобы добавить изменчивость.
Источник
И, наконец, вот ссылка для скачивания исходного кода: https://github.com/ssusnic/Machine-Learning-Flappy-BirdАлгоритм машинного обучения для Flappy Bird – заключение
В этом уроке мы успешно реализовали робота с искусственным интеллектом для обучения игре в Flappy Bird. После нескольких итераций мы можем получить почти неуязвимого игрока.Для достижения этой цели мы использовали два подхода к алгоритмам машинного обучения: искусственные нейронные сети и генетический алгоритм.
В качестве эксперимента вы можете попробовать изменить некоторые параметры в коде и посмотреть, что получится.
Например, вы можете изменить количество нейронов в скрытом слое или количество объектов в популяции.
Кроме того, вы можете попробовать изменить фитнес-функции.
Более того, попробуйте изменить некоторые физические параметры — расстояния между препятствиями, гравитацию и так далее.
Попробуйте тот же подход к эволюции и в других играх.
Теги: #машинное обучение #Машинное обучение #нейронные сети #нейронные сети #генетические алгоритмы #генетические алгоритмы #Разработка игр #Алгоритмы #Машинное обучение
-
Сканирование Сайта
19 Oct, 24 -
Законы Для Пользователей Интернета
19 Oct, 24