Hayami Kaito Web
← Apps

強化学習(Q 学習)

格子の世界でエージェントが試行錯誤しながらゴールへの道を学ぶ様子を、Q 値の色と方策の矢印で見せます。Q 学習・SARSA・期待 SARSA を並べて学習させ、崖歩きでの違いや、価値反復で求めた正解との差を確かめられます。

崖(罠)のすぐ上を通るのが最短ですが、探索でうっかり落ちると −100 です。Q 学習は崖ぎわの最短の道を、SARSA は探索での転落を見込んで少し離れた安全な道を覚えます(Sutton & Barto の例)。

エージェント A

次の状態で一番よい行動の価値を目標にします(方策オフ)。探索で実際に選ぶ行動とは関係なく、最適な行動の価値を学びます。

エージェント B

次の状態で実際に選んだ行動の価値を目標にします(方策オン)。探索でときどき間違えることも込みで価値を学ぶので、危険な場所を避けがちです。

学習率 α
割引率 γ
探索率 ε
滑る確率

パラメーターを変えると学習は最初からになります。ε を「減らす」にすると、0.5 から始めてエピソードごとに 0.97 倍します(今は 0.100)。滑る床では、選んだ向きと直角の向きに確率の半分ずつ滑ります。

マスを押すと

A: Q 学習0 エピソード

まだ動いていません。

B: SARSA0 エピソード

まだ動いていません。

正解(価値反復)

環境のしくみ(どこに動くか・報酬)をすべて知っているとして、ベルマン方程式を 15 回繰り返して求めた最適な価値です。 最短の経路は 13 歩(報酬 -13)。

  • 価値が高い(よい)
  • 価値が低い(悪い)
  • 罠(−100)
  • ゴール
  • 壁
  • Q 値は、マスを 4 つの三角形に分けて、その向きへ動く行動の価値を塗ります。黒い丸がエージェント、太い線が価値の一番高い行動だけをたどった経路です。

エピソードごとの報酬

直近 20 エピソードの平均です。点線は最適な方策の報酬(滑らない床のとき)。探索(ε)を続けている間は、最適な値より下にとどまります。

学習を始めると、エピソードごとの報酬の合計をここに描きます。

エージェントエピソード歩いた数直近 20 回の平均の報酬罠に落ちた割合(直近 100 回)貪欲な経路最適な方策との一致
A: Q 学習00——ゴールに着かない3%
B: SARSA00——ゴールに着かない3%

使い方

  • 地図と、並べて比べる 2 つのアルゴリズム(Q 学習・SARSA・期待 SARSA)を選び、「学習する」を押します。「1 歩ずつ」にすると、エージェントが動きながら Q 値を書き換える様子を 1 歩ずつ見られます。
  • 学習率 α・割引率 γ・探索率 ε・床が滑る確率を変えると、学習は最初からになります。
  • マスの色は学習した価値(青いほどよく、橙ほど悪い)、矢印は今の方策(価値の一番高い行動)です。右端は、環境のしくみを知っているとして価値反復で求めた正解です。
  • 「マスを選ぶ」でマスを押すと、そのマスの 4 つの行動の価値を正解と並べて表示します。「壁」「罠」「ゴール」「スタート」を選んでマスを押すと、地図を作り変えられます。

強化学習と Q 学習

強化学習では、エージェントが環境の中で行動し、受け取った報酬から、どう行動すればよいかを試行錯誤で学びます。ここでは 1 歩ごとに −1、罠に落ちると −100 の報酬なので、報酬の合計を大きくすることは、罠を避けてなるべく短い道でゴールすることになります。

Q 学習は、状態 s で行動 a を取ったときにこの先得られる報酬の合計の見込み Q(s, a) を表で持ち、1 歩ごとに Q(s, a) ← Q(s, a) + α [r + γ max Q(s′, a′) − Q(s, a)] と更新します。環境のしくみを知らなくても、実際に動いた経験だけから最適な価値に近づいていきます。ゴールの近くから価値が決まり、それが 1 歩ずつ前のマスへ伝わっていく様子が色の広がりで見えます。

探索と方策オン・オフ

今わかっている一番よい行動ばかり取ると、もっとよい道を見つけられません。ε-greedy では、確率 ε でランダムな行動を取って探索します。Q 学習は更新の目標に「次の状態で一番よい行動」を使う方策オフの方法で、探索で取った行動とは関係なく最適な価値を学びます。SARSA は「次に実際に取る行動」を使う方策オンの方法で、探索でときどき失敗することも価値に含めます。

崖歩きではこの違いがはっきり表れます。Q 学習は崖ぎわの最短の道を覚えますが、学習中は探索でときどき崖に落ちます。SARSA は崖から 1 マス離れた遠回りの道を覚え、学習中に受け取る報酬はかえって多くなります。ε を「減らす」にすると探索が減っていき、SARSA も最短の道に近づきます。