Pull to refresh

Программа учится играть по видеороликам

Reading time2 min
Views2.9K
Программа играет в простые игры крестики-нолики, четыре в ряд (Connect 4) и гомоку — и выигрывает у человека. Казалось бы, ничего интересного, если бы не один важный нюанс — эта программа не знает правил! Точнее, она выучила их с нуля, просмотрев двухминутные видеозаписи с участием игр людей.

Лукаш Кайзер (Łukasz Kaiser) из университета Париж Дидро написал программу на C++, которая разбивает видеоряд по кадрам, убирает из них всё лишнее (руки людей) — и получает список последовательных позиций.

На основе этих данных алгоритм (на OCaml) составляет базу разрешённых ходов и список выигрышных/проигрышных/неразрешённых позиций, затем генерирует набор логических формул типа ∃x1Q(x1) ∧ ∃x0(C(x1,x0) ∧ x0 = e1). Оба модуля интегрированы в свободную программу для игры в настольные игры Toss.

На обычном ноутбуке программе требуется 28-74 секунды для обработки двухминутного видеоролика, в зависимости от игры. Потом ещё пару минут для составления набора правил — и она готова играть. Правда, чтобы научиться выигрывать, нужно посмотреть не один видеоролик, а больше. Во время тестирования программы она обработала 25 видеороликов игры в крестики-нолики, 25 — четыре в ряд и 17 — в гомоку. Если игра более простая, то достаточно и меньшего количества.

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

Собственно, и сам Лукаш Кайзер пишет, что выбрал настольные игры как объект применения своей программы, «потому что здесь количество визуальных объектов относительно мало, в то время как имеется достаточное разнообразие действий. Кроме того, игры являются натуральной моделью многих сценариев отношений в реальном мире, что делает результат значимым в широком контексте».

Подробнее об алгоритме см. в научной работе: Learning Games from Videos Guided by Descriptive Complexity (PDF), или на видеозаписи его презентации с Третьей конференции по искусственному интеллекту общего назначения (Third Conference on Artificial General Intelligence).

Tags:
Hubs:
Total votes 34: ↑32 and ↓2+30
Comments13

Articles