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

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

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

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

Chapter 1 に入るよ。前回ネタバレしちゃったように、強化学習は環境と相互作用しながら行動を判断していくけど、そもそも自然界の動物ってそうだよねって話があるね。例えば幼児は明示的に教えられているわけではないけど、遊びながら/手を動かしながら/周囲を見回しながら、ある行動をしたときに何が起こるかを知って、それを繰り返して自分の目的を達成するにはどうするべきかを学んでいくって。

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

行動して、その結果をみて、また行動して…ということですか…? あっ、それはもしやよくいわれる PDCA サイクルのことですか? 申し訳ありません、私はそのような意識の高い幼児ではありませんでした…。

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

とっさにその単語が出てくる高校生は意識が高いんじゃないかな!? 別に自分で意識はしてなくてもいいよ。意識的でも無意識でも、人間含め動物ってそうやって生きる方法を学んでいくよねって話だから。むしろ、意識してやる方法を、再現可能な手続きをこれからこの本で学ぶんだよ。もちろんコンピュータでやるんだから、評価も学習も完全に定量的な PDCA サイクルをね。

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

ということは、強化学習を学ぶと、仕事や人生が上手くいくんですか? なんともはや…。

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

いや、仕事や人生だとまず「状態」や「行動」の集合を定義するのが困難なんじゃないかな…観測される情報ってとてもたくさんあるし、別に部長は毎ターン行動選択するって感じで生きてるわけじゃないでしょ。さらに何を目的(ゴール)としてどう報酬を設計するのかって話だし、そこまでできたとして上手く解けるかもまた別の話だしね。逆に「状態」や「行動」の集合及びゴールが比較的明確なボードゲームやコンピュータゲームをプレイするのなんかは強化学習の得意とするところだね。Chapter 1 の導入部分の最後に、強化学習は他の機械学習よりもゴールを意識した手法だとあるね。強化学習は本質的に「エージェントにどうふるまってほしいか」と切り離せないからね。もちろん他の機械学習手法にも目的(関数)はあるけど、それがモデルを学習する人間の現実的なゴールとぴったり重なっているかっていうと必ずしもそうでないことも多いんじゃないかなって意味だと私は思ったよ。

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

何を目的とするか…確かに PDCA サイクル以前に、自分が何を目指すのかが明確でなければなりませんね。私はまだ人生に強化学習を導入しようという段階になかったようです…。

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

よくわかんないけどわかってくれたならいいよ…。1.1 節の冒頭には、報酬を最大化するために何をするべきかを学ぶ、つまり状態から行動への写像を学ぶのが強化学習だとあるね。前回の絵にかいたように、この状態から行動への写像のことを方策というよ。そして強化学習の最も重要な特徴は以下の2点だとある。

  • トライ&エラー ― 正解の行動を教えてくれる人はいないので、自分でいろいろ行動してみて報酬を大きくするような行動を見つけ出さなければならない。
  • 遅延報酬 ― いまとった行動が目先の報酬だけでなく後々の報酬まで影響するかもしれない。
これらを考慮しながら上手く行動しないといけないのが強化学習の難しいところだね。

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

トライ&エラー…? すみません、仮に私が将棋をプレイするエージェントだとしましょう。「いろいろ行動してみて報酬を大きくする行動を見つける」とはどういうことですか? 勝ったら賞金をもらえる対局が1回しか開催されなかったら、何度もやってみるというのはできないのでは?

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

…そうだね、Chapter 1 の冒頭には幼児の学習の例があった。幼児の場合は方策を学ぶと同時に利用しているね。きっと幼児の目的は快適に生きることで、毎日より面白い遊びを探すだろうし、毎日その日の遊びの楽しさを享受している。他方、私は前回将棋をプレイするエージェントの話をした。このエージェントの方策が利用される場面はここ一番の対局だろうね。じゃあその対局で方策を学ぶかというとそれでは遅いよね。指し始めるまで何も知らなかったら、どの手が最も勝ちにつながるかなんてわからない。だからこの場合は幼児と違って、少なくともあらかじめ方策を学んでいる。幼児の場合は前世の記憶を引き継いで生まれたのでもなければ、「生まれる前からあらかじめ面白い遊びを知っている」ということはできないけどね。…まとめると、「強化学習とは方策を学ぶこと」といっても、その方策はあらかじめ学んでおくことができるのか、方策を利用したい場面で初めて学ばなければならないのかの別があると思うんだよね。方策を利用したい場面を「本番」とでも呼ぶならば、以下の3パターンがあると思うよ。

  • 本番の前に方策を学んでおくことはせず、本番中に方策を学んでいく(方策を変更していく)。
  • 本番の前に方策を学んでおき、本番中はその方策にしたがうのみ(方策を変更はしない)。
  • 本番の前に方策を学んでおき、本番中にもさらに方策を学んでいく(方策を変更していく)。
快適に生きようとする幼児は上の1番目だ。他の例としては、まあこれもネタバレになっちゃうけど「目の前に10台のスロットマシンがある。どのスロットマシンも引くとコインがある確率で1枚出てくるが、その確率はスロットマシンごとにばらばらで、あらかじめわからない。このスロットマシンを合計1000回引けるとする。より多くのコインを得るにはどのような計画で引いていくべきか」みたいな問題も1番目に該当するかな。2番目は、ボードゲームをプレイするエージェントは割とここなんじゃないかな。本番でよい方策を学ぶんじゃ到底パターンが足りないから、あらかじめたくさんの棋譜を学んでおくとか、コンピュータどうしの対戦で腕を磨くとかしておくと思う。3番目は、事前に学習しておくことが可能だけど、本番中にも適応した方がいいケースかな。もちろん事前の学習と本番中の学習は異なる手法かもしれない。…そして、トライ&エラーというのは、この1~3番目のうち「1番目や3番目の本番中の学習」「2番目や3番目の事前学習のうち、シミュレーションによって方策を学習するもの」にあてはまる概念だと思う。それなら「やってみて結果をみてみる」という要素があるからね。でも、例えば事前学習しかしない場合で、「やってみて結果をみてみる」という要素がない事前学習手法もあると思う。例えば Chapter 4 の Dynamic Programming(DP)はそうだと思うんだよね。DP の価値推定はトライ&エラーって感じじゃないと思う。ただもしかしたら、DP は強化学習とは別枠の古典的なアルゴリズムってみなされてるかもしれないけど…。

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

えっと、わかりました。将棋エージェントにおけるトライ&エラーとは、本番に臨む前のシミュレーションでの訓練で何局もやってみるということだったんですね。そうですね、飛車を振ってあまりに負けるようだったら、やはり居飛車戦法にするかもしれません。

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

まあ、強化学習問題のちゃんとした定式化は Chapter 3 でやるみたいだよ。定式化には動的システム論という分野の、不完全観測マルコフ決定過程の最適制御の概念を借りるみたいだね。

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

マルコフ決定過程(MDP)というのは、状態がいくつかあって、それぞれの状態で取りうる行動をとると確率的に状態遷移と報酬の支払いがあるシステムであって、状態遷移確率がいまいる状態と選択した行動のみに依存する(過去にいた状態や過去に選択した行動には依存しない=マルコフ性をみたす)ようなものの上で遷移する過程だね。強化学習エージェントが行動を選択する舞台だ。それが MDP で定式化されるから、これでもう強化学習問題のかなりの部分の定式化が整ったといえる。参考に昔描いた絵を貼っておくと、下の左側の絵が MDP の状態遷移図だね。この MDP には「不満」「満足」という2つの状態があって、「不満」の状態で取りうる行動は「残留」「転職」の2つ。「満足」の状態で取りうる行動は「残留」のみ。「不満」の状態で「残留」したら次も絶対「不満」に遷移する。「転職」したら「満足」に遷移するかもしれないしやっぱり「不満」に遷移するかもしれない。「満足」にいる状態で「残留」しても確率的に「不満」に遷移するかもしれない。あと、「不満」に遷移するときは不満なりの報酬(きっとマイナス)が、「満足」に遷移するときは満足なりの報酬(きっとプラス)が、「転職」したときは転職コスト(マイナスの報酬)がかかるっていうシステムだね。

f:id:cookie-box:20160403143322p:plain:w640

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

なんでそんなマルコフ決定過程考えたんですか…あと、それどう行動するのが最適なんですか…。

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

部長だって人生の強化学習に興味があったじゃん…これは一つの定式化だよ…上の例では、行動選択が発生するのは「不満」状態においてのみだけど、転職するコストが小さいならとりあえず転職するのが最適なんじゃないの…わかんないけど…。

(次回があれば)つづく