[解決済み] Q-learningとSARSAの違いは何ですか?
質問
ということは分かっているのですが SARSA はオンポリスであるのに対し Q-ラーニング はオフポリシーですが、その数式を見ると、この2つのアルゴリズムに違いがあるようには(私には)思えません。
によると、この本は 強化学習。入門編 (サットンとバルト著)。SARSA アルゴリズムでは,ある政策が与えられると,それに対応する行動-値関数 Q (タイムステップ t における状態 s と行動 a において),すなわち 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-learningアルゴリズムの更新ステップは以下の通りです。
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つのアルゴリズムの違いは、SARSAが次の政策値を調べるだけなのに対して、Q-learningは次の政策値を調べるということでしょうか。 最大 ポリシー値?
TLDR(と私自身の答え)
最初にこの質問をしたときから、回答してくださった方々、ありがとうございました。を作りました。 githubレポ Q-Learningで遊んでみて、何が違うのか経験的に理解できた。全ては、どのように 次善の策を選択する アルゴリズム的な観点からは 平均的 , 最大 または ベスト アクションをどのように実装するかによって異なります。
もう一つの大きな違いは いつ この選択が起こっている(例. オンライン 対 オフライン )と、それが学習にどのように/なぜ影響するのかを説明します。もしあなたが2019年にこれを読んでいて、より実践的な人であれば、RLのおもちゃの問題で遊ぶことが、その違いを理解するための最良の方法でしょう。
最後にもう一つ 重要 は、Suton & BartoとWikipediaの両方がしばしば 混同している または 誤った に関する定型的な表現。 次の状態の最善/最大の行動と報酬 :
r(t+1)
は、実際には
r(t)
これで行き詰った人がいれば幸いです。
解決方法は?
はい、ここが唯一の違いです。オンポリシーのSARSAは従うポリシーに対して行動値を学習し、オフポリシーのQ-Learningは貪欲なポリシーに対して行動値を学習するのです。ある共通の条件のもとでは、両者とも実数値関数に収束するが、その速度が異なる。Q-Learningは収束がやや遅い傾向があるが、政策を変えながら学習を続けることができる。また、Q-Learningは線形近似と組み合わせた場合の収束は保証されていない。
実用的には、ε-グリードポリシーにおいて、Q-Learning は Q(s,a) と最大行動値の差分を計算し、SARSA は Q(s,a) と平均行動値と最大行動値の加重和の差分を計算する。
Q-Learningです。Q(s <サブ t+1 ,a <サブ t+1 ) = max <サブ a Q(s <サブ t+1 ,a)
SARSAです。 Q(s <サブ t+1 ,a <サブ t+1 ) = ε-平均 <サブ a Q(s <サブ t+1 ,a) + (1-ε)-max <サブ a Q(s <サブ t+1 ,a)
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン