medium

Большой разбор: как ИИ играет в змейку

Современные технологии против игры прошлого века.

Помните, раньше была такая игра — змейка? Она появилась в 70-х, и в неё играли на всём: от компьютеров и приставок до кнопочных телефонов. Например, если вы пропустили то время, это могло выглядеть вот так:

Большой разбор: как ИИ играет в змейку

Смысл игры:

  1. Вы управляете змейкой, которая постоянно в движении, она может двигаться вверх, вниз, влево или вправо. На экране в случайном месте появляется клеточка — считайте, что это еда.
  2. Ваша задача — собрать как можно больше еды.
  3. Как только змейка съедает очередную клеточку с едой, в случайном месте появляется новая клетка. Также змейка удлиняется на одну клетку.
  4. Если змейка упрётся в стенку или сама в себя, то игра заканчивается.

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

Австралийский программист Эван, он же CodeBullet, научил искусственный интеллект играть в эту игру и сделал об этом видео:

Если вы знаете английский, просто смотрите и получайте удовольствие, а если нет — мы приготовили подробный разбор того, что происходит в ролике.

Начало: 5 разных алгоритмов

В самом начале Эван экспериментировал с нейросетью, чтобы найти лучший алгоритм для игры в змейку. В итоге у него получилось 5 разных алгоритмов, каждому из которых он дал своё имя. Они отличались стилем игры, поведением в разных ситуациях и результативностью.

Степан. Это одна из первых версий алгоритма, у которой есть одна характерная особенность: Стёпа любит двигаться по диагонали.

Большой разбор: как ИИ играет в змейку

Несмотря на то, что кажется, что змейка делает всё правильно, это самая худшая версия нейронки, которая получилась у программиста. При этом умение Стёпки двигаться по диагонали — уникально, оно сильно пригодится в будущем.

Лена. Она умнее Стёпы, двигается более предсказуемо, а ещё у неё классно получается избегать столкновения с собой. Это важное умение для змейки, потому что если голова упрётся в хвост или в тело — игра закончится.

Лена отлично умеет выбираться из сложных ситуаций.

Миша. Быстрая, эффективная змейка почти без единого лишнего движения. Миша почти идеален, но этого недостаточно.

Большой разбор: как ИИ играет в змейку

Коля. Умеет собирать много кусочков, но когда становится совсем длинным, то размер начинает ему мешать.

Большой разбор: как ИИ играет в змейку

Сёма. Чемпион среди этих версий, потому что только он смог набрать 136 очков — больше, чем остальные кандидаты.

Большой разбор: как ИИ играет в змейку

Собираем в одно целое

Можно было остановиться на Сёме, но Эван решил пойти дальше и подумал: «А что если объединить эти змейки в одну, чтобы вместе они работали максимально эффективно?»

Для этого программист сделал одну большую нейросеть, в которую поместил 5 змеек по такому алгоритму:

  1. Перед каждым следующим шагом каждая из пяти змеек говорит, как бы она поступила в этой ситуации.
  2. Отдельная нейросеть смотрит на варианты и выбирает лучший из них.
  3. Змейка делает шаг, и всё начинается сначала.

Смысл в том, чтобы использовать сильные стороны каждой змейки для наибольшего эффекта.

Добавляем цвета

Чтобы стороннему наблюдателю было понятно, что происходит на экране и о чём именно «думает» нейронка, Эван придумал раскрашивать змейку в разные цвета:

  • зелёный означает, что змейка нашла очередной кусочек, который можно съесть, и это стало её целью;
  • синий — змея предвидит, что скоро она будет двигаться к еде;
  • белый — рядом со змеёй нет легкодоступных кусочков, и её задача — выжить и никуда не врезаться.

Теперь мы тоже можем понимать, какие решения принимает искусственный интеллект в каждой ситуации. Самое интересное, что иногда мы даже можем понять, какая из змеек сейчас взяла управление на себя.

Например, тут явно Степан.
А вот тут Лена помогает Стёпе не врезаться в самого себя.

Появился синий цвет: это означает, что змейка видит еду и думает, как бы подобраться к ней поближе.

Даже тут виден кусочек Стёпы :-)
Новая змейка побила рекорд Сёмы, и даже с такой длиной она легко движется дальше.
Начались первые проблемы: белый цвет означает, что змейке не до еды и нужно выбираться из такой ситуации.
А вот отсюда змейка уже выбраться не сумеет, хотя путь для выхода у неё есть. Рекорд — 204 очка.

Запустим снова и проверим, получится ли побить этот рекорд:

200 очков и почти катастрофа, но змейка всё же нашла решение. Поразительно.
Набрав 228 очков, змейка внезапно врезается в свой хвост, хотя места в середине достаточно для трёх таких змеек.

Рекорд побит, и, скорее всего, не в последний раз. С каждым запуском алгоритм становится умнее, и змейка допускает всё меньше и меньше ошибок.

Что дальше

Дальше как обычно — новые большие разборы, объяснение того, как работают нейросети и как это применить на практике. Лайк, подписка, все дела.

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Как на самом деле работает Wi-Fi
Как на самом деле работает Wi-Fi

Пособие для тех, кому нужно больше, чем пароль.

easy
Новая задача про хитрого электрика
Новая задача про хитрого электрика

На этот раз у него 49 проводов, но он справится.

hard
Мальчик заливает на FTP, мужчина поднимает Git
Мальчик заливает на FTP, мужчина поднимает Git

Зачем нужен контроль версий и что делать, если ваши друзья его используют.

hard
Зеро-код: это как?
Зеро-код: это как?

Какие задачи можно решать, не открывая редактор кода.

easy
Полезные расширения VS Code для фронтенда, бэкенда и тестирования
Полезные расширения VS Code для фронтенда, бэкенда и тестирования

Один редактор на всех — и все плагины на одного

easy
Чистый код: теория и практика
Чистый код: теория и практика

Разбираем основные идеи книги Роберта Мартина

easy
Что делает продакт-менеджер и зачем он лично вам
Что делает продакт-менеджер и зачем он лично вам

Гуманитарная минутка

easy
Подборка бесплатных нейронок, которые могут заменить «Фотошоп»
Подборка бесплатных нейронок, которые могут заменить «Фотошоп»

Пока «Фотошоп» не выпустит новую версию сам

easy
Как устроен спутниковый интернет
Как устроен спутниковый интернет

Надёжно, но с большими задержками.

easy
medium
[anycomment]
Exit mobile version