Нейросети : Научил ИИ играть в Flаppy Bird

На этот раз уже делюсь радостью. :) Предпринял еще одну попытку научить нейросеть играть в игру. На этот раз все получилось.

Продолжение этого поста:

На этот раз удалось найти и исправить ошибки, а также понять, чтобы было сделано неправильно. Я переписал проект с нуля, и в итоге. Оно полетело:)

Спасибо комментаторам за дельные советы!

1515
5 комментариев

Мои поздравления! Работающий результат - это круто

2
Ответить

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

Советую посмотреть это видео с начала и до конца
https://youtu.be/uXt8qF2Zzfo
(тут поверхностное описание, и хоть часть из этого но ты поймешь, и этого будет достаточно)

Потом вот это видео
https://youtu.be/VrMHA3yX_QI
тоже с начала и до конца, в конце самое важное

Ответить

Насчет обучения на реальных играх я видел вот эти два видео где "без обмана" рассказывают и показывают результат:

Бот для Трекмании https://youtu.be/iZIPowqm-fo - важное уточнение в Этом видео обучение идет на TMNF и ее можно "ускорить" в бесконечное количество раз (получать результат ввода без задержек и ожидания рендера кадра), также в Трекмании
Детерминированная физика тоесть результат такого "инпута" всегда будет одинаков (физический движок работает на INT и не использует FLOAT).
И на TMNF можно ускорить время "читами" (игре 10 лет там все для этого сделано, утилиты для TAS готовые есть их можно и для ИИ обучения использовать)

В этом видео https://youtu.be/a8Bo2DHrrow он играет на 2020 Трекмании где "нет читов" и не ускорить время, поэтому дальше чем проехать на плоской карте он не смог (потратив месяцы).

Бот для Марио (самый подробный отчет, много не озвучено читай текст с экрана)
https://youtu.be/CI3FRsSAa_U
Спойлер - не работает, на последнем уровне есть уникальный двойной прыжок которого нет на прошлых уровнях, и так как обучение происходит на реальной игре и поколение уже слишком далекие (12 миллионов) то нужно как минимум в 10 раз больше поколений провести чтоб этот прыжок "запомнился"(чтоб успешный прыжок оказал влияние на текущую конфигурацию нейросети) (и автор не захотел продолжать так как пол года уже этим занимался)

Ответить

Самые популярные видео на ютубе про "нейросети и ИИ" очень часто "ложные" подделки и/или используют "спец условиями".
Как ты сам заметил - в Юнити "не Детерминированная физика" поэтом результат последовательности одних и техже вводов ВСЕГДА будет вести в уникалькому результату, что может оказать влияние на то что нейросеть сделает 100 поднятий с интервалом такимто и в 50 случаях нейросеть "разобьется" на половине пути из за "FLOAT физики".

(очевидно что тебе не нужна была Юнити, достатчно было на питоне написать функции обработки "прыжка" и прокручивать карту до столкновения опуская координаты, и мгновенно получать результат миллионов поколений)
(а уже после получения рабочего бота записалбы "путь бота" в своем скрипите(сохранив путь как коордынаты) и проигралбы путь с красивыми Аниме девочками для видео) (так и пускают в "продакшон")

Много видео про ИИ/Нейросети/Машинное обучение на Ютубе сделаны чтоб "продаться спонсорам", где тоже все притянуто за уши и работает "только в этом конкретном случае" и сделав шаг в сторону все сломается.
Очень большой хайп раздули, и мыльный пузырь начал схлопываться так как на практике применимо очень мало из того что показано на презентациях докладах и демках.

Ответить

Вывов из моих сообщений еще раз - освой "простую сортировку картинок" (и обязательно осиль два видео в первом коментарии), этого достаточно чтоб понять все про Нейросети и ИИ.
Дальше "ищи работу" в машинном обучении, потому что для реального применения теории нужны коспическим мощности.

Как вариант "поиграться" можешь освоить google collab https://colab.research.google.com/ они бесплатно дают мощности уровня 1660 Нвидии, и можно удаленно тренировать ботов. Не загружая свой ПК.
Но это всеголишь "игрушка" на практике это никому не нужно, тоесть опять будет время вникуда.

Что делают из нейросетей на практике:

Ботофермы, например для Дестени2(игра) на консолях ПС4 ставят бота который управляет(джойстиком) делая какойто минимум действий чтоб получать награды/опыт/доджить АФК кик/бан. Такая ИИ/нейросеть работает очень просто(за чес можешшь собрать из готового) там детектор "врагов"(из картинки на экране) и навод оружия на них, плюс простая ориентация на местности. (очевидно такоеже работает для всех онлайн игр где можно продавать прокачанные аккаунты)

Чат ботов, и распознавание речи для простейшего набора фраз/действий.

Ботов для "гоночных игр" с 2000-го года во всех(более мене известных) гоночных играх нейросеть тренируют для вождения автомобиля.

...

П.С. также помни что любая функция результат которой зависит от ввода - является простейшей нейросетью, тоесть функция
func(argument a){ return a*2; } - это уже нейросеть так как результат зависит от ввода.
Поэтому все компьютерные программы когда либо созданные это ИИ и нейросети/комбинации нейросетей.

Ответить