Qラーニングでは、すべてのステップで観察と報酬を使用してQ値関数を更新します。
Qt + 1(st、at)= Qt(st、at)+ α [ Rt + 1+ γ最高a』Qt(st + 1、a』)− Qt(st、at)]
ニューラルネットワークはq値関数の関数近似にすぎないと言って間違いありません。
一般に、近似部分は、標準的な教師あり学習問題です。ネットワークは(s、a)を入力として使用し、出力はq値です。q値が調整されると、これらの新しいサンプルをネットワークにトレーニングする必要があります。それでも、相関サンプルを使用するとSGDが影響を受けるため、いくつかの問題が見つかります。
DQNペーパーを見ると、状況が少し異なります。その場合、彼らがしていることは、サンプルをベクターに入れることです(体験の再生)。ネットワークを教えるために、彼らはベクトルからタプルをサンプリングし、この情報を使用してブートストラップを行い、ネットワークに教えられる新しいq値を取得します。教えるというときは、確率的勾配降下法やお気に入りの最適化アプローチを使用してネットワークパラメータを調整することを意味します。ポリシーによって収集されている順序でサンプルを教えないことで、サンプルを相関解除し、トレーニングに役立ちます。
最後に、状態決定するために、最高のq値を提供するアクションを選択します。s
a∗(s )= a r gmは、Xがa Q ( s 、a )
Q値関数が完全に学習され、環境が静止している場合、この時点で貪欲であるのは問題ありません。ただし、学習しながら、探求することが期待されています。 -greedyであるいくつかのアプローチがあり、最も簡単で最も一般的な方法の1つです。ε