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

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

Начать

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

Пример Android

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

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

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

Модель создана для того, чтобы игровой агент мог играть в небольшую настольную игру под названием «Удар самолета». Для краткого ознакомления с этой игрой и ее правилами обратитесь к этому 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 в обучающем коде .