Reinforcement Learning: An Introduction〔Second Edition〕(その3)

以下の本を読みます。何かお気付きの点がありましたらご指摘いただけますと幸いです。
Sutton & Barto Book: Reinforcement Learning: An Introduction

〈参考〉過去に強化学習についてかいたものへのリンク

前回:その2 / 次回:まだ
f:id:cookie-box:20190101155733p:plain:w60

えっと、前回学んだのは、強化学習とは「各状態でどの行動を選択すべきか学ぶこと」つまり「方策を学ぶこと」だということですね。本番の前にあらかじめ方策を学んでおくことも、いきなり本番で方策を学んでいかなければならないこともあるようですが…。そしてその、エージェントが行動を選択して状態の間を移動していく舞台が「マルコフ決定過程」です。そうですね…いうなれば、状態とは海に点々と浮かぶ島々で、行動はそれぞれの島から他の島に行く(あるいはもといた島に戻ってくる)船です。エージェントはある島にいて、その島で乗れる船に乗ります。乗れる船はきっと複数あるのでどれか選ばなければなりません。それぞれの船が行きつく先の島は確実に決まっているかもしれないし、確率的に複数の島のどれかになるというようになっているかもしれませんが、その確率はエージェントがいまいる島と選んだ船のみで決まり、過去にいた島や過去に乗った船に左右されることはありません…。

f:id:cookie-box:20190101160814p:plain:w60

なるほど、部長は船に乗って島々の間を船で旅するんだ。趣のある喩えだね。その旅の目的は何かな?

f:id:cookie-box:20190101155733p:plain:w60

目的…そうです、この旅には目的があります。それは得られる報酬の和を最大化すること…報酬とは、それぞれの島で船に乗ったときにもらえる…ログインボーナスです。

f:id:cookie-box:20190101160814p:plain:w60

趣が消滅したよ!?

f:id:cookie-box:20190101155733p:plain:w60

ではそうですね…船に乗ったら、どこの島でどの船を選んだかに応じて金貨がもらえるんです。もらえる金貨の枚数は船によって異なります。いえ、船によっては逆に金貨を支払わなければならないかもしれません。ならば船を選ぶときに最も自分にとって得になる船を選べばよさそうですが、そうではありません。いま損をする船を選んだとしても、その船の行き先の島にはとてもたくさんの金貨がもらえる船があるかもしれないからです。それが「遅延報酬」、目先の損得だけ考えればよいのではないという強化学習の大きな特徴です。

f:id:cookie-box:20190101160814p:plain:w60

もう1つの特徴は?

f:id:cookie-box:20190101155733p:plain:w60

はい、困ったことに、どの船に乗るとどれだけの金貨がもらえてどの島に行きつくのかというのは最初わからないんです(※)。教えてくれる人がいないんです。だから、最初はとりあえず適当な船に乗ってみるしかありません。この、自分でやってみて情報を集めていくしかないというのが強化学習のもう1つの特徴である「トライ&エラー」です…って、あれ?

環境モデルが既知の問題設定の場合はこれがわかっています。
f:id:cookie-box:20190101160814p:plain:w60

どうしたの?

f:id:cookie-box:20190101155733p:plain:w60

この旅はいつまで続くのでしょう。もしや永遠に続くのですか? しかし、将棋の対局は終わりますよね…。それに、もしもらえる金貨が正になるようなループが見つかったら獲得できる金貨の枚数は無限大になってしまうのでは…それは無限大にうれしいということなんでしょうか…。

f:id:cookie-box:20190101160814p:plain:w60

…まず、永遠に続く旅とそうでない旅があるよ。将棋の対局は後者だね。その場合は、島々の中に「この島で終わり」という島がある。そこにたどり着いたらもう他の島には移動できない。将棋の例から明らかなように、終わりの島は複数あってもいい。いろいろな詰みの盤面があるからね。

f:id:cookie-box:20190101155733p:plain:w60

そこにたどり着いたら終わり、終着点…奥多摩駅のような。

f:id:cookie-box:20190101160814p:plain:w60

違うよ? 奥多摩駅からはちゃんと立川方面の列車が出てるよ?

f:id:cookie-box:20190101155733p:plain:w60

確かに。ではその終着の島は、そこに行きつく船はあるが、そこから船は出ていないということですか?

f:id:cookie-box:20190101160814p:plain:w60

と考えてもいいし、船は出ているけど必ずその島に戻ってくる船しかないと考えてもいい。どっちでもいいよ。後者と考えると、他の島と同じように扱えたりするけどね。一方で、終着の島がない場合もある。その場合は、永遠に旅が続くから、永遠に旅が続かない場合でも、集められる金貨の枚数が収束しないことがあるかもしれないね。でも、そういう場合は現在からある程度の期間に得られる報酬の和の最大化を目指すことが多いと思う。よくあるのが、k ステップ後に得られる報酬を  \gamma^k \, (0 \leqq \gamma \leqq 1) 倍にすることで、遠い未来の報酬に得られる報酬ほど重みを小さくする。 \gamma < 1 にすれば報酬の和が発散するのを抑えられそうだよね。55ページの式 (3.8) がそうかな。

f:id:cookie-box:20190101155733p:plain:w60

なるほど…旅は終わらなくてもいいのですか…自らが状態を移ろい続ける世界に終着点がないと知ったときエージェントは何を思うのでしょうね…。

f:id:cookie-box:20190101160814p:plain:w60

さあ…。本に戻ると、2ページの中ほどでは「教師あり学習」を引き合いに出して、「正解付きの教師データをもとに未知データに対する正解を予測しようとする」という学び方も重要だけど、環境と相互作用しながら学ぶ場合はそれでは不十分だとあるね。もしかしたらサンプルデータがある場合もあるかもしれないけど、それが正解なのかわからないし、きっとそのサンプルデータはあらゆる状況を網羅してもいない。「地図にない場所」を探さなければ、最大の報酬は達成できないって。

f:id:cookie-box:20190101155733p:plain:w60

そうですね、棋譜が手元にたくさんあったとしても、その盤面に対する正解手かはわかりませんし、あらゆる盤面の情報があるとも思えません。

f:id:cookie-box:20190101160814p:plain:w60

次の段落では強化学習は「教師なし学習」とも違うとある。強化学習教師あり学習ではないからといって教師なし学習でもないって。教師なし学習は正解ラベルのないデータに隠れた構造を見出す手法だけど、強化学習は構造を見出すのではなく報酬を最大化するものだからって。「教師あり学習」と「教師なし学習」という言葉はいかにも MECE機械学習を分類しているようだけど、そうではなく、強化学習はそれらのどちらとも違う第3のパラダイムだって。

f:id:cookie-box:20190101155733p:plain:w60

はい、教師あり学習は「見本となるデータをもとに未知データの正解を予測する」、教師なし学習は「データの構造を見出す」、強化学習は「環境と相互作用しながら報酬を最大化する」ですから互いに目指していることは異なりますね。なので、Mutually Exclusive なのはいいような気がするんですが、ではこの3者を Collect すると何を Exhaustive なんでしょう。3者に共通する目的は、「得られたデータ(中のサンプル)について何らかの判断をする」と思います…「この未知画像サンプルは数字の『3』だ」「このデータ中のこのサンプルは2峰の正規分布のこちら側に属している」「この状況ではこう行動する」などといった具合です。しかし、教師あり/なし学習と強化学習では、一度だけ判断すればいいのか、何度も判断を続けなければならないかが違いますね…強化学習が判断を下す対象は、データというよりはそれを生成するモデルであるようです。しかもその生成モデルは判断を下す度に判断に応じて変化する。なので、3者を特徴付ける軸として、判断する対象が「標本」なのか「モデル」なのかという軸を一つ考えます。また、何に基づいて判断するのかも3者は異なると思います。つまり、何を学習するかです。正解付きの訓練データから学習するのは教師あり学習のみです。教師なし学習では判断する対象データそのものに基づいて判断するようです。強化学習では、事前に判断の手がかりになる情報から学習する場合もあれば、それが不可能で対象データとの相互作用しながら判断を修正していくしかない場合もあるかもしれません。まとめるとこうです。

判断をする対象のデータ 判断の根拠となるデータ
(学習対象のデータ)
つまり、学習(根拠の抽出)と判断が
教師なし学習 未知生成モデルから生成されたデータ(標本) 未知生成モデルから生成されたデータ自体 同時である(未知データから根拠を抽出することが判断することに等しい)
教師あり学習 事前に得た「正解付き」類似データ 同時でない(事前データから根拠を抽出した後、未知データに対する判断を「予測」する)
強化学習 未知生成モデルそのもの(これについて連続した判断の列を与える)(判断する度に判断に応じて生成モデルは変化する=未知生成モデルと相互作用する) 未知生成モデルから生成されたデータ自体の場合もあるし、事前に得た類似モデル/データの場合もあるし、そのどちらも用いる場合もある(が、事前に得た類似モデル/データの場合でも正解は付いていない) 3パターンありうる
  • 同時である(未知データから根拠抽出)
  • 同時でない(事前データから根拠抽出)
  • 事前データからも根拠抽出するし、未知データからも根拠抽出する
もう少しシンプルにするとこうです。
対象 モデルとの
相互作用
事前情報 事前情報に
対する正解
教師なし学習 標本 ×
教師あり学習 標本
強化学習 モデル ×
どうでしょうか?

f:id:cookie-box:20190101160814p:plain:w60

といわれてもこの本は機械学習概論とかじゃないんだけど…部長がそう考えてわかりやすかったならいいんじゃない?


2019-01-12 追記
f:id:cookie-box:20190101160814p:plain:w60

3ページは、他の学習にはない、強化学習が乗り越えないといけない独特の課題として「探索(exploit)と利用(explore)のトレードオフ」が挙げられているね。そうだね、いま部長がある島で10艘ある船のどれに乗るか選ぼうとしているとする(※)。実は目の前の船のうち9艘にはこれまでに乗ったことがあって、その9艘の中で一番金貨がもらえる船はもう知っている。だから、そのときの知識を「利用」してその船に乗りたい気がする。でも、これから先に得る金貨の枚数の合計を最大化するためには、やっぱり残り1艘の船も「探索」してみてもらえる金貨の枚数を確かめてみたい。実はその船が最も金貨をもらえる船かもしれないし、もしそうだったらそれを見過ごし続けていたら損してしまうからね。でも、あまりに「探索」にこだわっていたらせっかく得た知識をろくに「利用」する前に旅が終わってしまうかもしれない。難しいのは、「利用」と「探索」のどちらを選んでも不利益があるかもしれない。それを避けられない。ジレンマだね。それを呑み込んで、ある程度「利用」してある程度「探索」する、とバランスを取らないといけないんだよね。

f:id:cookie-box:20190101155733p:plain:w60

ああ、わかります。私はいつもモスバーガーモスバーガーを選ぶのですが、あそこにはテリヤキバーガーやロースカツバーガーなど何やら魅力的なメニューも他に多くあるでしょう? たまには他のメニューも探索してみるべきなのではないかとふと思うのです。しかし、確実に口に合うものかはわかりませんし、これまでの経験からモスバーガーを選べば満足する未来は確約されていますから、結局モスバーガーを選んでしまうのです。これが探索と知識利用のジレンマだったんですね。

f:id:cookie-box:20190101160814p:plain:w60

えっと…それは確かに探索と知識利用のジレンマが存在するけど、いうほど部長はジレンマに陥ってなさそうだね…というかモスバーガーなんていつでも行けるんだからメニューの全探索くらいできるんじゃないの…。

f:id:cookie-box:20190101155733p:plain:w60

いえ、そうはいいますが、私が高校を卒業したら近くにモスバーガーのない土地で生活することになる可能性もあるでしょう? モスバーガー側が永続する保証もありません。メニューを全探索するとなると、毎週モスバーガーに行くとしても半年程度はかかるはずです。残りの高校生活のうち半年間も探索に費したら、知識利用フェーズの割合があまりに削られてしまいます。

f:id:cookie-box:20190101160814p:plain:w60

実は満足の合計を最大化するために探索と知識利用のバランスとってる…?

(次回があれば)つづく