Правда ли, что ИИ может сам научиться играть в культовую аркаду? И правда ли, что для этого не нужны ни TensorFlow, ни PyTorch — только чистая Julia?
Мы решили проверить это на самой беспощадной игре детства — Flappy Bird.
Мы перенесли знаменитую игру на чистый Julia и обучили две разные сети: простую полносвязную и свёрточную (CNN). Всё это — чтобы на практике показать, как можно учить алгоритмы принимать решения. Никаких фреймворков, никакой графики: только код, эволюция и псевдографика прямо в терминале.
🔍 Почему этот пример хорошо подходит для обучения:
🔹 Эволюционный подход вместо backprop-а: сеть развивается через пробу, ошибку и «естественный отбор» лучших экземпляров. 🔹 Две архитектуры для сравнения: видно, как по-разному CNN и полносвязная сеть «видят» одну и ту же игру. 🔹 Прозрачность процессов: каждый шаг обучения открыт: от получения состояния игры до выбора действия.
Минимум «магии»: только базовые структуры данных и простая математика.
Всего через 14 поколений «птица» стабильно набирала 58 очков — и могла бы и больше. В проекте мы показали, какая архитектура справилась лучше и почему иногда простая сеть выигрывает у более сложной CNN.