【強化学習】SARSAとQ学習の違い

SARSAとQ学習の違いについて参考文献をもとにお話したいと思います。
SARSAとQ学習のそれぞれのアルゴリズムとプログラムについては下記の記事で紹介しています。

【入門】Q学習の解説とpythonでの実装 〜シンプルな迷路問題を例に〜
【強化学習、入門】SARSAの解説とpythonでの実装 -迷路を例に-

SARSAとQ学習の学習方法の違い

SARSAとQ学習の違いは学習に用いるTD誤差にあります。
いかにSARSAとQ学習の更新式を示します。
まず、Q学習の更新式、

$$\begin{aligned}
Q(s,a) \leftarrow Q(s,a) + \alpha(r + \gamma \color{red}{\max_{a’ \in A}Q(s’,a’)}-Q(s,a))
\end{aligned}$$

次にSARSAの更新式、

$$\begin{aligned}
Q(s, a) \leftarrow Q(s, a) + \alpha (r +\gamma \color{red}{Q(s’, a’)} – Q(s, a))
\end{aligned}$$

SARSAは遷移先の状態において実際に取る行動の情報\(Q(s’, a’)\)を用いて学習し、
Q学習では、遷移先の最大行動価値\(\max_{a’ \in A}Q(s’,a’)\)を用いて学習します。
SARSAは現在の方策に依存し、Q学習は方策には依存しないのが特徴です。
また、Q学習は遷移先状態の良い部分しか見ていないというものも大きな特徴です。

では、2つのトイプロブレムで、どのような性能差がでるかを
崖があるグリッドワールドで試してみます。

崖があるグリッドワールド

通常のグリッドワールドとは異なり、崖があるグリッドワールドを用いて、評価します。
図で表すと以下のような問題になります。

f:id:ttt242242:20190404180402j:plain

エージェントが崖に行くと報酬が-100となり、さらにスタート地点に戻されます。 それ以外の地点ではひたすら-1の報酬が得られるようなゲームです。

プログラム

githubに挙げました。
クローンして、run.pyを実行するとグラフが出力されます。

https://github.com/tocom242242/sarsa_ql_in_cliffgridworld/tree/master

実験と考察

この実験では\(\epsilon\)-greedyを用いて、\(\epsilon=0.1\)に固定して学習を行います。
複数回試行し、、エピソード毎の平均報酬で評価します。
以下のグラフがQ学習とSARSAによる実験結果です。

f:id:ttt242242:20190404175948j:plain

横軸はエピソード、縦軸が累積報酬を表しています。
SARSAのほうがQ学習に比べて良い報酬を得ていることがわかります。
これはなぜか?
各手法によって得られた方策を見てみます。
プログラムで出力されただと見にくいので、図で示します。

まず、Q学習によって得た方策
f:id:ttt242242:20190404180311j:plain:h200

次に、SARSAによって得た方策
f:id:ttt242242:20190404180110j:plain:h200

Q学習は危険(崖に近い)な近道を学習して、
SARSAは安定した方策を学習してます。

なぜそのような結果になったかというと
Q学習は遷移先状態の最大行動価値だけを用いるため、
単純にゴールがどれだけ近いかのみを見みます。
そのため、近い道を見つけています。
逆に言えば、遷移先状態の最大行動価値以外の価値は見ないため、
危険かどうかは考慮ぜず行動します。
崖に近い道を選択しているので、 探索行動によってと崖から落ちているため、
報酬が小さくなっています。

一方で、SARSAは \(\epsilon\)-greedyで、\(\epsilon\)を0にしない限り、
遷移先状態のすべての行動価値を考慮して学習します。
そのため、危険な道も考慮して学習することになり、
安全な道を学習したと言えます。

もちろん最終的に\(\epsilon\)を0にした場合には両者とも
最も近い道を最適経路として学習します。

参考文献

強化学習強化学習

  • 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章
  • 出版社/メーカー: 森北出版
  • 発売日: 2000/12/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 5人 クリック: 76回
  • この商品を含むブログ (29件) を見る

コメント

  1. […] SARSAとQ Learningの違い […]

タイトルとURLをコピーしました