強化學習

與代理人進行棋盤遊戲,該代理人使用強化學習進行訓練,並使用 TensorFlow Lite 部署。

開始使用

如果您是 TensorFlow Lite 新手,並且正在使用 Android,我們建議您探索以下範例應用程式,它可以幫助您開始使用。

Android 範例

如果您使用的平台不是 Android,或者您已經熟悉 TensorFlow Lite API,則可以下載我們訓練好的模型。

下載模型

運作方式

此模型是為遊戲代理人建構的,用於玩一款名為「Plane Strike」的小型棋盤遊戲。如需快速瞭解此遊戲及其規則,請參閱此 README

在應用程式 UI 的底層,我們建構了一個與人類玩家對戰的代理人。該代理人是一個 3 層 MLP,它將棋盤狀態作為輸入,並輸出 64 個可能棋盤格中每個格子的預測分數。該模型使用策略梯度 (REINFORCE) 進行訓練,您可以在此處找到訓練程式碼。在訓練代理人後,我們將模型轉換為 TFLite 並將其部署在 Android 應用程式中。

在 Android 應用程式中的實際遊戲過程中,當輪到代理人採取行動時,代理人會查看人類玩家的棋盤狀態 (底部的棋盤),其中包含先前成功和不成功攻擊 (命中和未命中) 的相關資訊,並使用訓練好的模型來預測下一次攻擊的位置,以便在人類玩家完成遊戲之前結束遊戲。

效能基準

效能基準數字是使用 此處描述的工具產生的。

模型名稱 模型大小 裝置 CPU
策略梯度 84 Kb Pixel 3 (Android 10) 0.01 毫秒*
Pixel 4 (Android 10) 0.01 毫秒*

* 使用 1 個執行緒。

輸入

模型接受 3D float32 張量,形狀為 (1, 8, 8) 作為棋盤狀態。

輸出

模型傳回 2D float32 張量,形狀為 (1,64),作為 64 個可能攻擊位置中每個位置的預測分數。

訓練您自己的模型

您可以透過變更 訓練程式碼中的 BOARD_SIZE 參數,為較大/較小的棋盤訓練您自己的模型。