強化学習

強化学習を使用してトレーニングされ、TensorFlow Liteを使用してデプロイされた、エージェントとのボードゲームをプレイします。

始めましょう

TensorFlow Liteを初めて使用し、Androidを使用している場合は、開始に役立つ次のサンプルアプリケーションを調べることをお勧めします。

Androidの例

Android以外のプラットフォームを使用している場合、またはTensorFlow Lite APIに既に精通している場合は、トレーニング済みモデルをダウンロードできます。

モデルをダウンロード

使い方

このモデルは、ゲームエージェントが「プレーンストライク」と呼ばれる小さなボードゲームをプレイするために構築されています。このゲームとそのルールの簡単な紹介については、このREADMEを参照してください。

アプリのUIの下に、人間のプレーヤーと対戦するエージェントを構築しました。エージェントは、ボードの状態を入力として受け取り、64個の可能なボードセルのそれぞれの予測スコアを出力する3層のMLPです。モデルはポリシー勾配(REINFORCE)を使用してトレーニングされ、トレーニングコードはここにあります。エージェントをトレーニングした後、モデルをTFLiteに変換し、Androidアプリにデプロイします。

Androidアプリでの実際のゲームプレイ中に、エージェントがアクションを実行する番になると、エージェントは人間のプレーヤーのボードの状態(下部のボード)を確認します。これには、以前の成功および失敗したストライク(ヒットとミス)に関する情報が含まれます。 、そして訓練されたモデルを使用して、次に攻撃する場所を予測します。これにより、人間のプレーヤーよりも先にゲームを終了できます。

パフォーマンスベンチマーク

パフォーマンスベンチマークの数値は、ここで説明するツールを使用して生成されます。

モデル名モデルサイズデバイスCPU
ポリシー勾配84 Kb Pixel 3(Android 10) 0.01ms *
Pixel 4(Android 10) 0.01ms *

*1つのスレッドが使用されます。

入力

モデルは、ボードの状態として(1、8、8)の3次元float32テンソルを受け入れます。

出力

モデルは、64の可能なストライク位置のそれぞれの予測スコアとして、形状(1,64)の2次元float32テンソルを返します。

独自のモデルをトレーニングする

トレーニングコードBOARD_SIZEパラメータを変更することで、より大きな/より小さなボード用に独自のモデルをトレーニングできます。