SARSAがポリシーに準拠しているのに対し、Q ラーニングはポリシーに準拠していないことはわかっていますが、それらの式を見ると、これら 2 つのアルゴリズムの違いを理解するのは (私には) 困難です。
著書Reinforcement Learning: An Introduction (Sutton と Barto 著) によると。SARSA アルゴリズムでは、ポリシーが与えられると、対応するアクション値関数 Q (状態 s およびアクション a、タイムステップ t で)、つまり Q(s t , a t ) は次のように更新できます。
Q(s t , a t ) = Q(s t , a t ) + α*(r t + γ*Q(s t+1 , a t+1 ) - Q(s t , a t ))
一方、Q 学習アルゴリズムの更新手順は次のとおりです。
Q(s t , a t ) = Q(s t , a t ) + α*(r t + γ*max a Q(s t+1 , a) - Q(s t , a t ))
次のように書くこともできます
Q(s t , a t ) = (1 - α) * Q(s t , a t ) + α * (r t + γ*max a Q(s t+1 , a))
ここで、γ (ガンマ) は割引係数で、r tはタイムステップ t で環境から受け取った報酬です。
これら 2 つのアルゴリズムの違いは、Q ラーニングが次の最大ポリシー値を検索するのに対し、SARSA は次のポリシー値のみを検索するという事実ですか?
TLDR(および私自身の答え)
私が最初に質問して以来、この質問に答えてくれたすべての人に感謝します。Q-Learning で遊んでいるgithub リポジトリを作成し、経験的に違いを理解しました。それはすべて、次善のアクションをどのように選択するかにかかっています。これは、アルゴリズムの観点からは、実装方法に応じて、平均、最大、または最良のアクションになる可能性があります。
もう 1 つの主な違いは、この選択がいつ行われるか (オンラインとオフラインなど) と、それが学習にどのように/なぜ影響するかです。2019 年にこれを読んでいて、より実践的な人であれば、RL のおもちゃの問題で遊ぶことが、おそらく違いを理解するための最良の方法です。
最後の重要な注意点として、Suton & Barto とウィキペディアの両方が、次の状態の最高/最大アクションと報酬に関して、混合、混乱、または間違った公式表現を頻繁に使用していることです。
r(t+1)
実際には
r(t)
これが、これで行き詰まった人に役立つことを願っています。