После игры слишком много Angry Birds я начал наблюдать за своими собственными стратегиями. Оказывается, я разработал очень специфический подход к получению 3 звезд на каждом уровне.
Это заставило меня задуматься о проблемах разработки системы машинного обучения, которая могла бы играть в Angry Birds. Взаимодействие с игрой и запуск птиц является тривиальным. Но один вопрос, который у меня возник, касается «строительных блоков» системы.
Системы машинного обучения, кажется, работают с простыми понятиями или пониманием проблемы. Это часто кодируется как функции в качестве входных данных. Таким образом, кажется, что система должна иметь способность понимать некоторые концепции высокого уровня для генерации стратегии.
Это правда? Кроме того, каковы проблемы или сложные части разработки такой системы?
РЕДАКТИРОВАНИЕ № 1:
Вот некоторые уточнения. Получить 3 звезды - сложная проблема, потому что вам нужно максимизировать количество баллов. Это можно сделать двумя неисключительными способами: 1) Минимизировать количество используемых птиц (вы получаете 10000 очков за каждую неиспользованную птицу). 2) Максимальное разрушение стекла, дерева и других предметов. Каждый уничтоженный объект дает вам очки. Одной птицей можно уничтожить объекты стоимостью более 10000 очков.
Вот немного больше объяснения о «концепциях высокого уровня». Чтобы максимизировать очки, описанные выше, вам нужно использовать особые способности каждой птицы. Таким образом, это означает запуск разных птиц с разными траекториями, в зависимости от расположения карты. И во время игры я разрабатываю стратегию, которая уничтожает определенные области с определенными птицами в определенном порядке.
Кажется, что без понимания того, как использовать каждую птицу для уничтожения определенной области, система не могла бы научиться получать 3 звезды. Итак, как вы управляете и кодируете что-то подобное? Как вы гарантируете, что система сможет изучить эти концепции высокого уровня?