强化学习

与使用强化学习训练并使用 TensorFlow Lite 部署的代理玩棋盘游戏。

入门

如果您是 TensorFlow Lite 的新手,并且正在使用 Android,我们建议您探索以下示例应用程序,它可以帮助您入门。

Android 示例

如果您使用的是 Android 以外的平台,或者您已经熟悉 TensorFlow Lite API,您可以下载我们训练的模型。

下载模型

工作原理

该模型是为游戏代理构建的,用于玩一个名为“飞机攻击”的小型棋盘游戏。有关此游戏及其规则的快速介绍,请参阅此 README

在应用程序 UI 的下方,我们构建了一个与人类玩家对战的代理。该代理是一个 3 层 MLP,它将棋盘状态作为输入,并输出对 64 个可能的棋盘单元格的每个单元格的预测得分。该模型使用策略梯度 (REINFORCE) 进行训练,您可以在 此处 找到训练代码。训练完代理后,我们将模型转换为 TFLite 并将其部署到 Android 应用程序中。

在 Android 应用程序中的实际游戏过程中,当轮到代理采取行动时,代理会查看人类玩家的棋盘状态(底部的棋盘),其中包含有关先前成功和不成功攻击(命中和未命中)的信息,并使用训练的模型来预测下一步攻击的位置,以便它可以在人类玩家之前完成游戏。

性能基准

性能基准数字是使用 此处 描述的工具生成的。

模型名称 模型大小 设备 CPU
策略梯度 84 Kb Pixel 3 (Android 10) 0.01ms*
Pixel 4 (Android 10) 0.01ms*

* 使用了 1 个线程。

输入

该模型接受 (1, 8, 8) 的 3-D float32 张量作为棋盘状态。

输出

该模型返回形状为 (1,64) 的 2-D float32 张量,作为对 64 个可能的攻击位置的每个位置的预测得分。

训练您自己的模型

您可以通过更改 训练代码 中的 BOARD_SIZE 参数来训练您自己的模型,用于更大/更小的棋盘。