Обучение с подкреплением

Сыграйте в настольную игру против агента, который обучен с использованием обучения с подкреплением и развернут с помощью TensorFlow Lite.

Начать

Если вы новичок в TensorFlow Lite и работаете с Android, мы рекомендуем изучить следующий пример приложения, которое поможет вам начать работу.

Пример Android

Если вы используете платформу, отличную от Android, или уже знакомы с API-интерфейсами TensorFlow Lite , вы можете скачать нашу обученную модель.

Скачать модель

Как это работает

Модель создана для того, чтобы игровой агент мог играть в небольшую настольную игру под названием «Plane Strike». Для быстрого ознакомления с этой игрой и ее правилами обратитесь к этому README .

Под пользовательским интерфейсом приложения мы создали агента, который играет против игрока-человека. Агент представляет собой трехуровневый MLP, который принимает состояние доски в качестве входных данных и выводит прогнозируемую оценку для каждой из 64 возможных ячеек доски. Модель обучается с использованием градиента политики (REINFORCE), а код обучения можно найти здесь . После обучения агента мы преобразуем модель в TFLite и развертываем ее в приложении для Android.

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

Тесты производительности

Показатели производительности генерируются с помощью инструмента, описанного здесь .

Название модели Размер модели Устройство Процессор
Градиент политики 84 Кб Пиксель 3 (Андроид 10) 0,01 мс*
Пиксель 4 (Андроид 10) 0,01 мс*

* Использовано 1 нить.

Входы

Модель принимает трехмерный тензор float32 (1, 8, 8) в качестве состояния доски.

Выходы

Модель возвращает двумерный тензор float32 формы (1,64) в качестве прогнозируемых оценок для каждой из 64 возможных позиций удара.

Обучите свою собственную модель

Вы можете обучить свою собственную модель для платы большего/меньшего размера, изменив параметр BOARD_SIZE в обучающем коде .