いものやま。

雑多な知識の寄せ集め

強化学習について学んでみた。(その4)

昨日は、強化学習で考える具体的な状況や、用語について説明した。

今日は、もうちょっと簡単な場合について考えていく。

非連想的な問題

昨日の「報酬」に関する説明を聞いて、次のように思ったかもしれない。

「(猿の例で)大きな箱を選んでも小さな箱を選んでも報酬がもらえないなら、猿はどうやって『大きな箱を選ぶ』という行動の価値と、『小さな箱を選ぶ』という行動の価値を学んだらいいんだろう?」

これはもっともな疑問で、つまり、行動の選択を何度も繰り返した結果として報酬が得られるのだとしたら、それぞれの行動がどれくらい報酬に寄与したのかというのは、分からない。
将棋とかで、ある手が実は悪手だったのだけど、相手も間違えたので、結果的に自分が勝つことが出来たりした場合、悪手を指したにも関わらず報酬がもらえてしまうので、結果、その悪手の評価が上がってしまうことすら考えられる。

この問題をどう解決すればいいのかを考えていくのが強化学習の肝になっていくのだけど、今はひとまず置いておくことにする。

じゃあ、何を考えていくのかというと、もっと簡単な場合のこと。

具体的には、もともと考えていた問題が難しいのは行動の選択によって状態がどんどん変化していくせいなわけだから、どんな選択を行っても状態が変化しないような問題を考えていく。
状態は常に1つで、行動を選択すればその行動に対する報酬がすぐに返ってくる。

このような問題を、非連想的な問題と呼ぶ。
(「非連想的」というのは"nonassociative"の訳。後続する状態が行動の選択に結びついていない、くらいの意味)

なんでこのような問題を考えるのかというと、「強化学習」が「教師あり学習」と違って、「正解」を教えてもらえるわけではなく、「報酬」が与えられるだけなので、ある「特有の問題」が生じるということを確認する必要があるから。
その「特有の問題」とは、「知識利用」と「探査」のバランスの問題である。

n本腕バンディット問題

今回考えていく具体的な非連想的な問題は、「n本腕バンディット問題」という問題。

「『バンディット』ってなんじゃらほい?」と思うだろうけど、これはスロットマシンの一種。

n本のレバーが用意されていて、どれか1本を選んでレバーを下ろすとドラムが回転し始め、時間が経つとドラムが勝手に止まる。
ドラムが止まったときに絵柄が役になっていれば、役に応じたコインが払い戻される、という感じ。
ただし、レバーには当たり外れがあって、当たりやすいレバーと外れやすいレバーがある。
なので、出来るだけ当たりやすいレバーを見つけ出して、そのレバーを下ろすようにした方がいい。

「n本腕バンディット問題」では、このようなスロットマシンをある決められた回数(ここでは T回とする)回したときに、払い戻されるコインの合計の期待値を出来るだけ大きくするには、下ろすレバーをどのように選択していけばいいのかを考える。

問題をもうちょっと正確に考えていくことが出来るように、ここではn本腕バンディットが次のようになっているとする:

  • レバー i \: (i = 0, 1, \cdots , n-1)を下ろしたときの報酬は、平均 E_i、分散1の正規分布に従う。
  • レバー iを下ろしたときの報酬の平均(すなわち期待値) E_iは、平均0、分散1の正規分布に従う。

さて、どうやってレバーを選んでいけばいいだろうか・・・?

「どれでもいいからランダムで!」というのは、さすがにおマヌケすぎる。
どのレバーも当たりやすさが同じだったり、あるいは、当たりやすいレバー、外れやすいレバーがどんどん変わっていってしまうのなら話は別だけれど、今回はどのレバーが当たりやすいのか、外れやすいのかが決まっていて、しかもそれが固定されている。
なら、完全にランダムで選ぶよりも、今までの結果を踏まえてレバーを選んだ方がいい。

けれど、だからといって、今までの結果を踏まえて「一番良さげなレバー」をずっと選びつづけるというのも、それが最善になるかは分からない。
例えば、レバー0を選んだらプラスの報酬が得られて、またレバー0を選んだらプラスの報酬が得られたとする。
「お、これはレバー0が当たりやすいレバーなんじゃね?」と、そのままひたすらレバー0を選び続けたら、確かに報酬はプラスになるかもしれないけれど、それが本当に最善だったのかは、かなり怪しい。
もしかしたら、レバー0は確かに当たりやすいレバーだったけれど、レバー1の方がずっと当たりやすいレバーだったという可能性もある。

そうなると、基本的には今までの結果を踏まえて良さげなレバーを選ぶことになるのだけれど、たまにはそれ以外のレバーも選んでみる必要があるのかもしれない。
けれど、良さげなレバーを捨ててまでして別のレバーを選ぶということは、失敗する可能性だってかなり高い。
もちろん、より良いレバーを見つけようと思ったら、絶対必要ではあるのだけれど・・・

これが「知識利用」と「探査」のバランスの問題だ。
「知識利用」と「探査」のジレンマ、と言った方が分かりやすいかもしれない。

「知識利用」をすればーーすなわち、今までの結果から考えて「良さげなレバー」を選べばーー確かにいい結果が得られることが期待できる。
けど、新たな知識は手に入らないので、行動が改善されていく可能性はない。
一方、「探査」をすればーーすなわち、「良さげなレバー」以外のレバーを試してみればーー試したレバーに関する新たな知識を得ることが出来るので、行動が改善される可能性がある。
けど、「良さげなレバー」を選んでいないので、失敗する可能性も高い。
「良さげなレバー」を選んでいれば確実に得られたであろう報酬を一回ドブに捨てる覚悟が必要になってくる。

「知識利用」をすべきか「探査」をすべきか・・・これはなんとも悩ましい問題だ。
そして、この悩ましさが生じる原因は、与えられるのが「正解」ではなく「報酬」に過ぎないという点にある。
なので、この「知識利用」と「探査」のバランスの問題は、非連想的な問題に限らず、強化学習では常につきまとう問題となってくる。

今日はここまで!

強化学習

強化学習

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