Q-Learningを理解しようとしている
基本的な更新式:
Q(st, at) += a[rt+1, + d.max(Q(st+1, a)) - Q(st,at)]
式とその機能は理解していますが、私の質問は次のとおりです。
エージェントはどのようにして Q(st, at) を選択することを知っていますか?
エージェントが何らかのポリシー π に従うことは理解していますが、そもそもこのポリシーをどのように作成しますか?
- 私のエージェントはチェッカーをしているので、モデルフリーのアルゴリズムに焦点を当てています。
- エージェントが知っているのは、現在の状態だけです。
- アクションを実行するときにユーティリティを更新することは理解していますが、そもそもそのアクションを実行することをどのように知っているのでしょうか。
現時点で私は持っています:
- その状態から実行できる各動きを確認します。
- 有用性が最も高い手を選択します。
- 行われた移動のユーティリティを更新します。
ただし、これは実際にはあまり解決しません。それでも、ローカルの最小値/最大値にとどまります。
締めくくりとして、私の主な質問は次のとおりです。
何も知らず、モデルフリーのアルゴリズムを使用しているエージェントの場合、最初のポリシーを生成して、取るべきアクションを知るにはどうすればよいでしょうか?