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

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

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

次回:まだ
f:id:cookie-box:20190101155733p:plain:w60

なぜかうちの部には活動費がちっとも配分されなかったので、当面の部活は無料の書籍で勉強したいと思うんです。そこで何かないか探したところ、ネットで上の Full Pdf を見つけて。何でもこの強化学習という分野は現実の問題への応用も目覚ましく、中にはベイズ的な解法もあるとか…。

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

去年の11月に出た本なんだ。原著だから英語だね。部長は英語読める?

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

さして読めませんね。この前の定期テスト、英語は追試でした。

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

追試て。うちの部に予算下りなかったの部長の成績不良が原因なんじゃ…。

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

しかし安心してください。この本の第1版は邦訳(以下)が出ており、幸いそれが手元にあるので適宜内容を照らし合わせながら読むことができ…ってあれ? 目次が結構違う…。

強化学習

強化学習

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

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

原著の第1版は1998年…ちょうど20年前なんだね。20年も経ったら目次も変わるんじゃないかな。

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

というわけで、副部長の英語力に頼らざるをえず。

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

Google翻訳とかあるんだから部長も頑張ってくんないかな…第1版もあるなら、まず目次の変化から見てみてもいいかもね。まず部長の持っている第1版の邦訳版だけど、以下の3部構成だね。

  • I. 強化学習問題
  • II. 基本的な解法群
  • III. 統一された見方
まず第I部で「強化学習」といわれる問題の枠組みとは何かと、その様々な解法に共通の概念を導入している。第II部で基本的な3つの解法を紹介、第III部ではそれらの解法をどんどん統一していっている。対して最新の第2版は、やっぱり3部構成なんだけどその内訳が違うね。
  • I. Tablar Solution Methods(テーブル形式の解法群)
  • II. Approximate Solution Methods(近似的な解法群)
  • III. Looking Deeper
第1版において第1部を割かれていた「強化学習とは何か」は第一部より前に「導入」という1章で片付けられているね。この20年で人々に「コンピュータが学習するということ」を説明する障壁が下がったから…かどうかは知らないけどね。というよりは、第1版で「強化学習とは何か」に含まれていた「マルコフ決定過程」という内容が「テーブル形式の解法群」の話の方に移動しただけなのかな。第2版の第I部は、「テーブル形式の解法群」というタイトルで、概ね第1版の第II部に相当するけど、第1版では第III部に含まれていた内容の一部もここに含まれているね。第2版の第II部は「近似的な解法群」で、第I部で近似ではない解法を学んでからじゃあ次は近似解法って流れかな。第III部は色々なトピックがあるけど最初の方は動物の学習とのアナロジーを論じているのかな…なんか神経細胞の絵とかあるし…。第1版と同様最後にはケーススタディ強化学習の最新の応用の話もあるね。

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

Solution Methods、解法群…この本には解法がたくさん載っているということですか? この手の本というのは、例えば章ごとに色々なモデルが紹介されていて、モデルと一緒にその解法がかかれているのではないんですか? 有名なPRMLも、「第3章 線形回帰モデル」「第4章 線形分類モデル」「第5章 ニューラルネットワーク」…というようになっていますよね。こちらの本は、解法ばかりなんですか? 1つのモデルの解法がそんなにあるんですか??

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

…それはちょっと出発点が違うんじゃないかな。部長がイメージしている「解法」って、「モデルを決めた後、その未知パラメータを決定する方法」だよね? その文脈で「解法が複数ある」っていうのは、同じモデルのパラメータを決定するのでも、異なる損失関数(2乗誤差とか交差エントロピーとか※)や最適化アルゴリズムSGD とか AdaGrad とか Adam とか)がありうるみたいなものだよね。でも、現実に目の前の問題を解こうとするとき、普通はそもそも「どのモデルを使うか」から考えないといけないんじゃないかな。だから、そういう意味ではモデルを選ぶところから含めて「解法」になると思う。そう考えればそのPRMLの第3, 4, 5章だって、全部「入力に対して正しい出力を予測する問題」の解法だよね(正解ラベル付きの訓練データを使った)。それぞれ「線形モデルで回帰する解法」「線形モデルで分類する解法」「ニューラルネットワークを用いた解法」といえる。もっというとその「訓練データを使って未知の入力に対する出力を予測する問題」を解くことを総じて「教師あり学習」というよね。

厳密な見方をすれば、損失関数を変えたらもはや解いている問題が違うという見方もあるかもしれません。
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

だからそれが「強化学習問題」で、それが何かをこれから読んでいくんだけど…本文に入ると、序文では、この20年で計算機の処理能力の向上に牽引されて人工知能分野は凄まじい発達を遂げたとあるね。この本では強化学習の中心的なアイデアアルゴリズムを紹介するけど、第1版同様本の位置付けはあくまでイントロダクションで、あとオンライン学習のアルゴリズムに焦点を当てているらしい。第2版では近年重要になってきたトピックも紹介するけど、包括的な説明ではないって。あと数学的に厳密な議論は第1版同様避けているけど、トピックをより深く理解するために必要なときはスキップもできるように網掛けのボックスで取り上げているって。38~40ページのような箇所がそれなのかな。あ、あと序文内に表記の定義もあるね。第1版から変更された表記もあるらしい。まず確率変数は大文字で、その実現値を小文字でかくことに統一するって。ステップ t における「状態」「行動」「報酬」が  S_t, \, A_t, \, R_t で、それらがどんな値をとったかが s,\, a, \, r というようにね。

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

ちょっと待ってください、「状態」「行動」「報酬」…? 強化学習は状態空間モデルと関係あるんですか? それにしても「行動」と「報酬」というのはいったい…?

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

状態空間モデルにおける「状態」と強化学習における「状態」は違う。状態空間モデルにおける「状態」は、「(一般に)時間変化する変数で、直接観測できないので、観測できる変数から推定したいもの」だけど、強化学習における「状態」は「時間変化する変数で、それを毎ステップ観測して、それがどんな値かに基づいて行動を選択するのにつかうもの」だね。「環境」からのシグナルといってもいい。…もう面倒だからネタバレになるけど第1版に基づいた絵を下に貼っておくよ(ただし第2版の表記にならって確率変数を大文字に変えてあるよ)。

f:id:cookie-box:20190104172718p:plain:w620
大雑把にいうと、強化学習問題とは「毎ステップ適切な行動を選択する問題」だね。この選択する主体のことを「エージェント」というよ。もうちょっと具体的な例でいうと、このエージェントが将棋をプレイするエージェントなら、毎ステップの「状態」は「自分の手番の直前の盤面」で、「行動」は「どんな手を指すか」だね。このエージェントが先手なら「S_0 = 初期配置」で「A_0 = 2六歩」とかかもしれないね。そしたら後手も何か手を打ってくるから、S_1 はそれに応じた盤面になって、それを受けてエージェントは打つべき手 A_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

ではないかな。というか「報酬」っていっても現実のお金じゃないからね。「報酬」は強化学習のキモになる概念だよ。エージェントは獲得する「報酬」の和が最大になるように行動を選択する。だから、強化学習を利用する我々はエージェントが思い通りのふるまいをするよう「報酬」を適切に設計しなければならない。もしエージェントを将棋の対局で勝たせたいなら、「エージェントがなるべく多くの報酬を得ようと毎ステップ行動選択すること」が「将棋の対局に勝つこと」につながらなければならない。

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

…そこまで考慮したかったら「対棋士Aエージェント」「対棋士Bエージェント」というように対局相手ごとに学習すればいいと思うよ。

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

対局相手によって異なる指し方ができるんですか? いま賞金を「報酬」としただけですよね?

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

できるよ。盤面に対して打つ手の「価値」が違ってくるからね。全く同じ盤面でも、ある手を打つことが対棋士Aでは自分の優勢につながるが対棋士Bでは自分の劣勢につながるというケースがもしあったら、「なるべく報酬を得よう」とするとき選択する行動は異なってくるよね。ある盤面である手を打ったとき、それ以降にどれだけの報酬が得られるかの期待値を、その盤面と打ち手に対する「価値」というよ。そして通常はより「価値」の高い手を選択する。でも「価値」はわからない。だから推定する。さっき強化学習とは「毎ステップ適切な行動を選択する問題」といったけど、もっと言い換えると「あらゆる状態で取りうる行動を取ったときのそれぞれの価値を推定する問題」といえるね。

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

なるほど…。

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

序文の続きには、本書の構成についてかいてあるね。第1版から変更があったのは上でもみた通りだけど、第2版の第I部は、厳密に解ける場合のテーブル形式の解法になってる。

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

さっきも思ったんですが「テーブル形式」って何です?

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

第1版の邦訳の87ページに「テーブル形式手法」とあるね。要は各状態とか各状態行動ペアの1つ1つについて価値を推定する解法だね。環境がどのように応答してくれるかがわかっていれば、強化学習問題は原理上はこの方法で厳密に解くことができる。ただし、現実の問題では往々にして状態の数がとてつもない数になる。だから現実にはあまりテーブル形式手法は適用できない。とはいえ、まず基本的な場合にどのように解くのかを抑えるのが物の順序ということだろうね。

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

xivページ8行目の both learning and planning methods というのは? 学習手法と計画手法? 計画とは??

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

邦訳版の9章がそのまま「プランニングと学習」というタイトルだね。そこをみると、強化学習問題の解法の中でも、環境モデルを明示的に必要とする解法を「プランニング手法」、環境モデルを明示的には必要としない解法を「学習手法」というみたいだね。あ、環境モデルってのは「環境がどのように応答するか」つまり「状態がどのように遷移するか」と「どのような報酬が得られるか」ね。それが明らかにわかっていたら後はどう行動するかを計画するだけって感じだから「プランニング手法」なのかな。わかっていない場合はとりあえず行動してみてその結果に応じて価値を推定していくことになるから、「学習手法」とよぶのかもしれないね。

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

序文からし強化学習の知識を前提としすぎではありませんかね…続きは私が読みましょう。第I部ではその「学習手法」も「プランニング手法」もどちらも扱いますし、さらにそれらの融合である n-step methods や Dyna も扱うということです。第2版で初出のアルゴリズムも多く、UCB, Expected Sarsa, Double learning, tree-backup, Q(σ), RTDP, MCTS がそうであると。続く第II部では、第I部で身に付けた強化学習問題の考え方を関数近似に拡張していきます。第II部にも新しい内容が追加されていて、ニューラルネットワーク, fourier basis, LSTD, kernel-based methods, Gradient-TD and Emphatic-TD methods, average-reward methods, true online TD(λ), policy-gradient methods がそうです。第2版では特に方策オフ型の学習手法が拡充されているらしいです。また、forward-view と backward-view を別々の章に分離したのも第1版からの変更だと。

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

邦訳版の7章に「前方観測的な見方」「後方観測的な見方」というトピックがあるけど、なぜ分離したのかは気になるね。

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

第III部では新章として強化学習と psychology との関係や neuroscience との関係が追加され、AlphaGo と AlphaGo Zero を含む最近のケーススタディも紹介されているということです。これらのケーススタディの選定の軸は、モデルフリーでかつスケーリングするというところにあるみたいですね。そんなこんなで第2版は第1版の2倍のボリュームになってしまったと。序文の残りは割と謝辞ですかね。

(次回があれば)つづく