Q-Learningを理解しようとしていますが、
私の現在のアルゴリズムは次のように動作します。
1.利用可能な各アクションの即時報酬と効用に関する情報に状態をマッピングするルックアップ テーブルが維持されます。
2.各状態で、ルックアップ テーブルに含まれているかどうかを確認し、含まれていない場合は初期化します (デフォルトのユーティリティ 0 を使用)。
3.次の確率で実行するアクションを選択します。
(*ϵ* = 0>ϵ>1 - probability of taking a random action)
1-ϵ = Choosing the state-action pair with the highest utility.
ϵ = Choosing a random move.
ϵ decreases over time.
4.以下に基づいて、現在の状態のユーティリティを更新します。
Q(st, at) += a[rt+1, + d.max(Q(st+1, a)) - Q(st,at)]
私は現在、自分のエージェントを単純なヒューリスティック プレイヤーと対戦させています。このプレイヤーは常に最高の即時報酬を与える動きをとります。
結果- 結果は非常に悪く、数百回のゲームの後でも、Q-Learning エージェントは勝つよりも多くを失っています。さらに、特に数百ゲームに達した後は、勝率の変化はほとんどありません。
何か不足していますか?私はいくつかのエージェントを実装しました:
(暗記学習、TD(0)、TD(ラムダ)、Q-Learning)
しかし、それらはすべて、同様の残念な結果をもたらしているようです。