強化学習
「Pythonで学ぶ強化学習」
はじめに
面白い強化学習が実務でも面白い効果をあげる
本書が目指すのはこの1点である
サンプルコードはgithubにあり
Day1 強化学習の位置付を知る
・強化学習と機械学習、AIといったキーワードの関係
・強化学習以外の手法に対する強化学習のメリットデメリット
・機械学習の基本的な仕組み
データの表現を学習することはデータの圧縮に似ている
つまり、圧縮されたサイズのデータには良い特徴が詰まっている
これを利用したのがAutoEncoder
複数の音声データをEncodeして、それを混ぜてDecoderで戻すと、今まで聞いたことのないような音が聞こえたりする
強化学習ではデータを与える他の2つの手法と異なり、環境を与える
環境とは、行動とそれに応じた状態の変化が定義されており、ある状態への到達に対して報酬が与えられる空間のこと
強化学習では環境で報酬が得られるようにモデルのパラメーターを調整する
強化学習は単体ではなく全体の報酬で最適化を行うという点が異なる
つまり強化学習において行動は報酬の総和の最大化につながるかという観点から評価される
この評価をどう行うかはモデル自身が学習する必要がある
つまり2つのことを学ぶ
1 行動の評価方法
2 行動の選び方
教師あり学習が可能な場合はまず教師あり学習を行うことが望ましい
モデルの挙動が制御でき、単純にデータを増やすほど精度が高まるというわかりやすいスケーラビリティがあるからである
強化学習における問題設定
「遷移先の状態は直前の状態とそこでの行動のみに依存する、報酬は直前の状態と遷移先に依存する」というマルコフ性を仮定する
このマルコフ決定過程(MDP)の構成要素は
s:状態
a:行動
T:状態遷移の確立、状態と行動を引数に遷移先と遷移確率を出力する関数
R:即時報酬、状態と遷移先を引数に報酬を出力する関数
状態を受け取り行動を出力する関数を戦略という
戦略に従って動く主体をエージェントという
MDPにおける報酬の総和は即時報酬の合計となる
エージェントは行動する段階で報酬の総和が知りたい
しかし、実際の報酬はエピソードは終了しないと計算できないため見積もりを立てることになる
見積もりは不確かな値なのでその分値を割り引いて計算
報酬の総和を見積もった値を期待報酬または価値という
そして価値を算出することを価値評価と呼ぶ
この価値評価が、強化学習の学習する1点目である行動の評価方法になる
例を実装していく
報酬の設定は強化学習の結果に大きな影響を与える
Day2 強化学習の解法1:環境から計画を立てる
・行動評価の指標となる価値の定義
・価値評価をDPで学習する手法と実装方法
・戦略をDPで学習する手法と実装方法
・モデルベースの手法とモデルフリーの手法の違い
計画をたてるには価値評価と戦略の学習が必要だが、そのためには価値を実態に即した形で定義しなおす必要がある
そのため、価値の定義、価値評価の学習、戦略の学習という3ステップで行う
学習方法はDPで、これは遷移関数と報酬関数が明らかな場合に使える
このように遷移関数・報酬関数をベースに行動を学習する手法をモデルベースの学習方法と呼ぶ
遷移関数と報酬関数を推定して学習することも可能
Day3ではモデルフリーの手法を解説する
価値の定義と算出
Day1で定義した価値には2つの問題がある
1つは、将来の即時報酬の値が判明している必要がある点、もう1つはそれが必ず得られるとしている点
1つ目は、価値を再帰的に定義することで解決可能である
DPでは将来の即時報酬について過去の計算値をキャッシュして計算する
2つ目は、即時報酬に確率をかけることで解決する
ここで、エージェントの行動を定義する方法には2つの方法がある
1 エージェンは保持している戦略に基づき行動する
2 エージェントは常に価値が最大になる行動を選択する
価値を再帰的かつ期待値で表現することで2つの問題を解決した
これをBellman Equationと呼ぶ
価値が最大になる行動を常に選択する場合もBellman Equationを変換することで導出できる
この場合、戦略ではなく最大を常に取る操作が行動選択の方法となる
戦略に基づき行動するか、価値が最大になるよう行動するかは強化学習の手法を分類する際に重要な観点となる
前者をPolicyベース、後者をValueベースと呼ぶ
強化学習では行動の評価方法と行動の選び方の2つを学習するが、行動の評価方法のみ学習し評価単体で行動を決定するのがValueベースである
Policyベースでは戦略で行動を決定し、その評価/更新に行動評価が使われる
ただしValueベースのBellman Equationでは価値を計算するのに価値が計算済みである必要がある
なぜなら行動は価値が最大となるものを選択することで前提であり、最大のものを選ぶには値が計算済みでなくてはならないから
状態すうが多い場合はしらみつぶしの計算は困難である
DPではV(s’)に適当な値を設定しておき複数回計算して徐々に精度を上げていく
2-2 DPによる価値評価の学習
各状態の価値を算出し、値が最も高い状態に遷移するよう行動するのがValueベースの基本的な考え方
DPで各状態の価値を算出する方法を価値反復法と呼ぶ
2-3 DPによる戦略の学習
エージェントは保持している戦略に基づき行動する、これがPolicyベースの基本的な考え
戦略は状態での行動確率を出力するがこの行動確率から価値の計算が可能になる
戦略により価値を計算し、価値を最大化するように戦略を更新するというプロセスを繰り返す
これをPolicy Iterationという
2-4 モデルベースとモデルフリーとの違い
DPの実装の違和感は「エージェントが一切動いてない」ことに起因する
エージェントは一歩も動かず、環境の情報のみから最適な計画を得ている
こういう芸当が可能なのは、遷移関数と報酬関数が明らかであるため
こうしたモデルベースの手法は実際にエージェントを動かすコストが高い場合、また環境においてノイズが入りやすい場合には有力な手法となる
それに対し、モデルフリーの手法は実際にエージェントを動かしてその経験から計画を立てていく
一般的にはモデルフリーの方がよく用いられる
遷移関数・報酬関数が既知であるケースは少ないため
これらの手法は併用することもでき、それはDay6に解説する
Day3 強化学習の解法2:経験から計画を立てる
モデルフリーの手法について
・経験を活用する際の3つの観点
・各観点の対の関係
・各観点を代表する手法を実装する方法
行動した経験を活用するにあたり検討すべきポイントが3点ある
1 経験の蓄積と活用のバランス
2 計画の修正を実績から行うか、予測で行うか
3 経験を価値評価、戦略どちらの更新に利用するか
実績か予測かという観点はエピソードの終了が定まる場合のみ成立する
というのも、強化学習ではエピソードの終了が定まらない環境を扱うこともあるため
エピソードの終了が定まる場合をEpisodic Task、終わりなく続く場合をCounting Taskという
Valueベースでは経験が価値評価の更新に、Policyベースでは戦略の更新に利用される
そして両方更新するという作戦も存在する
3つの観点はいずれも対の関係を持っている
探索⇔活用
モンテカルロ法⇔TD法
Valueベース⇔Policyベース
3-1 経験の蓄積と活用のバランス:Episilon-Greedy法
トレードオフのバランスをとるための手法としてEpsilon-Greedy法を解説する
環境の情報が未知の場合、自ら行動して状態の遷移、また得られる報酬を調査していくことになる
Epsilon-Greedy法はEpsilonの確率で調査目的の行動を行い、それ以外は活用目的の行動を行うというもの
epsilonは0.1前後に設定することが多いが、場合による
3-2 計画の修正を実績から行うか、予測で行うか
モンテカルロ法とTD法を紹介する
またこの間をとる手法としてTD法を紹介する
エピソードが終了した後に獲得できた報酬の総和で行動を修正するのはとてもシンプルだが、エピソードが終わるまで修正できない
予測で修正を行う場合、エピソードの修正を待たずに行動を修正することができるが、これは予測が正確性に欠ける
修正の妥当性をとるか速さをとるかのトレードオフ
TD法を利用した学習にはいくつか種類があり、代表的なものがQ-Learningである
状態における行動の価値をQ値といい、Q値を学習する手法なのでQ-Learningと呼ばれる
3-3 経験を価値評価、戦略のどちらの更新に利用するか
ValueベースとPolicyベースの大きな違いは行動選択の基準であった
戦略を用いない前者の基準をOff-policyといい、戦略を前提とする後者をOn-Policyという
Q-Learningの更新対象は価値評価であり、行動選択の基準はOff-Policyである
これに対し、更新対象が戦略でOn-policyである手法が存在する
それがSARSA(State-Action-Reward-State-Action)である
SARSAもQ-Learningも実装上はそれほど違いがないが、考え方は異なる
Off-policyとOn-policyという基準の違いがエージェントの行動にどんな影響を与えるか考える
直感的にはOff-policyは常に最善の行動を取ることを前提とするため楽観的、On-policyは現在の戦略の基づくため現実的
楽観的と現実的の差異を実験で示す
リスクの高い実験を行う
SARSAよりQ-Learningの方が行動価値が高めになっている
SARSAの場合、穴に落ちてしまう行動の揺らぎが考慮される
Policy Iterationは戦略と価値評価が分けて考えられることを示唆している
この着想に基づき、戦略担当をActor、価値評価担当をCriticとしてこれらを交互に学習する方法をActor Critic法と呼ぶ
大きなポイントはgainを計算する際にCriticの評価値を使っている点
得られたTD誤差はActor、Criticそれぞれの更新に利用される
今までの手法より学習にかかるエピソード数は長くなっているがその分最終的には安定した報酬が獲得できるようになっている
Off-Policy Actor-CriticはActor Criticの枠組みでOff-policyのような単一の行動選択を学習させる手法となる
これは連続値のコントロールで重要な手法であり、DDPGのベースとなっている
Day3の段階で強化学習の主要な手法はほぼ網羅されている
Deep Q-NetworkはQ-Learningがベースだし、Actor CriticはA3C/A2Cといった手法のベースになっている
Day3の手法から最新の手法へステップアップするための1つのポイントとしてQ値の算出がある
テーブルではない形でQ値を算出する方法が必要になる
全パターンを記録するのではなく、数式とそのパラメーターで状態・行動と行動評価の関係性を表現しようというのがDeep Q-Networkの発想である
Day4 強化学習に対するニューラルネットワークの適用
価値評価や戦略をパラメータを持った関数で実装する方法を解説する
これで連続的な状態や行動にも対応できるようになる
・関数としてニューラルネットワークを利用するメリット
・価値評価をパラメータを持った関数で実装する方法
・戦略をパラメーターを持った関数で実装する方法
価値評価や戦略をパラメータを持った関数で実装する方法を解説する
連続的な状態や行動に対応できるようになる
4-1 強化学習にニューラルネットワークを適用する
画像に特化したCNNは強化学習にとって画面を入力とする行動獲得を可能にしたという点でインパクトが大きい
Deep Q-Networkはゲーム画面を入力として強化学習を行った手法であり、人間のプレイヤーを超えるスコアを叩き出した
画面を見て行う作業は人間の活動のうち多くを占めるので、やはりCNNのインパクトは大きすぎる
ニューラルネットワーク利用する最大のメリットは、人間が実際に観測している状態に近いデータをエージェントの学習にも利用できる点である
具体的には画像や音声といったデータである
学習にとても時間がかかるというメリットもある
Agent:ニューラルネットワークで実装されたエージェント
Trainer:エージェントの学習を行うモジュール
Observer:環境から取得される状態の前処理を行うモジュール
Logger:学習経過の記録を行うモジュール
4-2 価値評価をパラメーターを持った関数で実装する
Day3にてテーブルで行っていた価値評価をパラメータを持った関数に置き換える手法を学ぶ
価値関数を利用した手法では行動選択を価値関数の出力に基づいて行う、つまりValueベースの手法である
4-3 価値評価に深層学習を適用する:Deep Q-Network
Deep Q-Networkは多くの改良が行われており、Deep Mindは優秀な改良手法を6つ組み込んだRainbowというモデルを発表している
1 Double DQN
価値の見積もり精度を上げるための工夫
2 Prioritized Replay
学習効率を上げるための工夫
3 Dueling Network
価値の見積もり精度を上げるための工夫
4 Multi-step Learning
価値の見積もり精度を上げるための工夫
5 Distributional RL
価値の見積もり精度を上げるための工夫
6 Noisy Nets
探索効率を改善するための工夫
4-4 戦略をパラメータを持った関数で実装する
戦略もパラメーターを持った関数で表現できる
状態を引数にとり、行動、または行動確率を出力する関数になる
ただ、戦略のパラメータ更新は一筋縄ではイアκない
価値評価では見積もりと実際の価値を近づけるというわかりやすいゴールがあったが、戦略から出力される行動や行動価値は計算できる価値と直接比較を行うことができない
学習のヒントとなるのが価値の期待値である
期待値を最大化するには直感的には高い報酬が見込まれる行動には高い確率を、その逆には低い確率を割り当てれば良さそう
戦略のパラメーターを勾配法で最適化する手法を方策勾配法という
4-5 戦略に深層学習を適用する
価値関数にDNNを適用したように、戦略の関数にもDNNを適用できる
具体的にはゲーム画面を入力として行動・行動確率を出力する関数になる
Policy Gradientにはいくつかバリエーションがあったが本節ではAdvantageを使ったActor CriticすなわちA2Cを使用する
A2CとA3Cの違いは、経験だけ伝えるか学習結果も伝えるかの違いになる
4-6 価値評価か、戦略か
Policyベースの手法はハンドル操作やロボットアームの操作といった連続値コントロールのタスクに使える
こうしたタスクをValueベースで行うのは困難である
ここまでの話ではPolicyベースが良さそうに聞こえるが学習が難しいというデメリットがある
Day5 強化学習の弱点
Day4で学んだ深層強化学習の負の側面について解説する
・サンプル効率が悪い
・局所最適な行動に陥る、過学習することが多い
・再現性が低い
5-1 サンプル効率が悪い
深層強化学習では学習に多くのサンプルが必要という弱点がある
ボールを取るといったゲームでも、Rainbowでも人間と同じスコアを出すには1800万ものフレームを必要としている
ハンドルやロボットアーム角度といった連続値のコントロールではさらに多くの時間がかかる
安定するまでに4000万ステップを要している
OpenAI Gymのような何度もプレイ可能なシミュレーターが必要でシミュレーターなしに深層強化学習を行うのは難しいのが現状
Boston Dynamicsは制御に深層強化学習を使っていない!!!!!!!!!!!!!
深層強化学習を用いれば同じネットワークで様々なタスクの問題を解くことができる
ここのタスクではそれぞれ深層強化学習より早く、しかも安定的に学習する既存の手法が存在する
深層強化学習は汎用的であるがゆえに特化していないともいえ、その意味では器用貧乏
5-2 局所最適な行動に陥る、過学習をすることが多い
そのそも強化学習は正解データを与えない学習であるため、人間が意図した行動を学習してくれる保証はない
AlphaGOは稀な例で、現実にはそうではない場合が多い
意図しない行動パターンとして、局所最適な行動と過学習の2つに分けられる
報酬の設定はとても難しい
5-3 再現性が低い
論文で報告される獲得報酬は最良の値が使われる傾向にあるので再現できないことがある
複数平均をとるべきだが、平均をとるだけの学習にとても時間がかかる
ある論文によれば20は必要
5-4 弱点を前提とした対応策
本節では弱点があることを前提とした対策を解説する
Day6では弱点そのものの克服を目指した対策を解説する
本節では
・テスト可能なモジュールに切り分ける:長時間の学習が実装ミスにより無駄になるという事態を防止する
・動作保証済みの実装をベースにして開発を行う:バグの入る余地を減らす
・学習を自動化する:学習は何度も行うことになるので
・可能な限りログをとる:一度の実験からなるべく多くの情報が得られるようにする
Day6 強化学習の弱点を克服するための手段
・サンプル効率を改善する手法の類型、そのうちの1つである「環境認識の改善」を行う手法の理論と実装
・再現性の低さを改善する試みの1つである、進化戦略の理論と実装
・局所最適な行動/過学習を矯正する手法の1つである模倣学習、逆強化学習の理論と実装
Day5で解説した3つの弱点を克服する手法を解説する
6-1 サンプル効率の悪さへの対応:モデルベースとの併用/表現学習
環境認識の改善について解説
サンプル効率を改善する手法としては、モデルを変える、学習方法を変える、転移学習、モデルベースとの併用、探索行動の改善、外部からの教示などがある
まず、モデルが原因かデータが原因かという観点がある
モデルの学習効率には学習能力と転移能力という2つの観点がある
データは環境側とエージェント側という2つの観点から考えられる
この2つの観点に、外部からデータを与える、学習させる側という観点が加わる
学習プロセスを誘導するカリキュラムラーニングと学習サンプルを与える模倣学習という手法がある
カリキュラムラーニングは最初に簡単なタスクを与えて徐々に難しくしていく手法
模倣学習はお手本を参考に学習させる手法である
CartPoleを例にすると、カートの位置や加速度などが状態として与えられていたらこれを利用することで比較的短い時間で問題を解くことができた
一方で深層強化学習の場合は状態が画面なので同時に2つのことを学習していることになる
環境認識の改善には、2つの手法がある
・モデルベース:環境をモデル化する
・表現学習:状態や状態遷移の特徴を捉えたベクトルを新たな状態として作成する
モデルベースは、環境の情報を元に計画を立てる手法である
実環境に対するシミュレーターを作成することで実環境に含まれる学習に不要なノイズを取り除ける、実環境を使わずに学習できるといったメリットがある
本章ではDynaという手法を紹介する
表現学習は状態を認識しやすくした表現を作成する
CartPoleであれば、画面からカートの位置や加速度が分かる表現を作成する
ここではWorld Modelsを紹介する
モデルベースのメリットは学習効率が良い点である
モデルベースのデメリットは最終的な目的である行動の学習がモデルの学習に依存する点である
Dynaではモデルフリーの学習を行うかたわら、エージェントの経験をもとにモデルの学習を行う
Dynaの発展形として、Neural Network Dynamics for Model-Based Deep Reinforcement Learning with Model-Free Fine-Tuningがある
モデルで学習したモデルフリーのエージェントをお手本に模倣学習を行うという興味深い手法も提案している
シミュレーションベースはモデルを使い、何手か先まで先読みすることで行動選択の精度を上げる手法である
シミュレーションベースの代表的な手法はモンテカルロ木探索である
表現学習はモデルベースよりもシンプルな手法
モデルベースは環境全体を推定の対象にしたが、表現学習は状態・状態遷移のみを対象にする
表現学習を用いることで、エージェントは戦略の学習に注力することができる
研究動向の紹介
環境認識の改善以外の手法について研究動向を紹介する
具体的には転移能力として、メタラーニングと転移学習、探索行動の改善として内発的報酬/内発的動機付け、外部からの教示としてカリキュラムラーニングを紹介する
転移能力を高める手法としてメタラーニングがある
メタラーニングは様々なタスクに共通するコツを学習させることでモデルの転移能力を高める手法である
6-2 再現性の低さへの対応:進化戦略
深層強化学習に限らず、深層学習では一般的に勾配法という学習ほうが用いられる
この勾配法を代替する学習法として近年進化戦略が注目を集めている
進化戦略は遺伝的アルゴリズムと同時期に提案された古典的な手法
・進化戦略
パラメーターを複数生成し、各パラメーターを使ったモデルの評価を行う
評価が良好なものに近いパラメータを再度生成し、評価するというプロセスを繰り返す
・遺伝的アルゴリズム
進化戦略と基本は同じで、評価が高かったパラメーター同士を混ぜる、ランダムなパラメーターを入れるといった操作を行う
6-3 局所最適な行動/過学習への対応:模倣学習/逆強化学習
局所最適な行動と過学習はいわゆる意図しない行動であった
これを解決するには意図した行動を学習させれば良い
・模倣学習
ひとが示したお手本から行動を学習させる
・逆強化学習
示されたお手本から報酬関数を逆算し、その報酬から行動を学習させる
いずれもお手本を用意するという面では同じになる
お手本に沿った行動を学習させるのが模倣学習、お手本で示される行動の背景にある報酬関数を推定して学習させるのが逆強化学習となる
模倣学習
教師あり学習にとても似ている
エキスパートの行動を記録しておいて、それと近しい行動をとるようエージェントを学習させる
しかし単にエキスパートの行動を真似するだけでは不十分
理由1:状態数が非常に多い場合、エキスパートの行動を取り切るのが困難
理由2:そもそも行動を記録するのが難しい
エキスパートの用意できるお手本は限られている
模倣学習では限られたお手本から、お手本以外のケースも含めて適切な行動がとれるように学習することが目標になる
模倣学習の手法として4つ紹介する
1 Forward Training
2 SMILe
3 DAgger
4 GAIL
・Forward Training
各タイムステップ個別で戦略を作成し、それをつなぎ合わせて全体戦略とする手法
・SMILe
Forward Trainingの問題点を改善した手法
・DAgger
戦略を基準としてきた上2つとは異なり、データを基準とした手法
・GAIL
エキスパートの模倣を見破られないように行うという手法
敵対的学習を用いる
GAILを発表した論文自体は模倣学習と逆強化学習の統合を目指した研究となっている
逆強化学習
エキスパートの行動を模倣するのではなく行動の背景にある報酬関数を推定する
報酬関数を推定するメリットとして、
1 報酬を設計する必要がない
2 他タスクへ転移に利用できる
逆強化学習の手順
1 エキスパートの行動を評価する
2 報酬関数の初期化
3 報酬関数を利用し戦略を学習
4 学習した戦略の評価が、エキスパートの評価結果と近くなるよう報酬関数を更新する
5 手順3に戻る
逆強化学習は学習に時間がかかる
逆強化学習の手法は3つの観点で整理できる
・行動を評価する方法
・報酬関数をモデル化する方法
・最適化に使用している問題設定
Day7 強化学習の活用領域
・強化学習を活用する2つのパターン
・強化学習を活用する2つのパターンにおける研究と事例
・強化学習を活用する2つのパターンを実現するツール/サービス
面白いなと思っても、実際に役に立つのか書きになる
強化学習の活用はまさに黎明期である
自動運転車の開発を行うWaymoでは模倣学習から教師あり学習に切り替えている
一方、DiDiは配車の最適化に強化学習を活用し始めている
強化学習のスタイルは2つに大別できる
・行動の最適化
-コントロール
-ビヘイビア
・学習の最適化
行動の最適化は強化学習で獲得された行動をそのまま活用する
コントロールは何らかの制御、ビヘイビアは状況に合わせた適切な振る舞い
学習の最適化は強化学習の「報酬を最大化する」という学習プロセスを活用する
例えば報酬を「機械学習モデルの精度」、「パラメーターの調整」とすれば強化学習で機械学習モデルの最適化を行える
7-1 行動の最適化
ロボットの操作であれば物を取る、目的地までいくといった行動を獲得させる
最大の障害がDay5で学んだ、強化学習の弱点である
特にコントロールではミスは許されない
Bonsaiはミスが許されないシステムへ強化学習を適用している会社
Bonsaiでは学習させる際に、達成しやすい行動に分解して学習させている
covariantは人間の操作記録から模倣学習を行い、ロボット単独でも動けるようにしようとしている
広告配信・レコメンドではDay3で扱った多腕バンディットの手法がよく用いられている
ゲームや対話でも活用が進む
pybulletはオープンソース物理シミュレーターのPythonインターフェースである
pybullet-gymを使うことでMuJoCoと同等の環境で学習できる
7-2 学習の最適化
学習の最適化では強化学習の「報酬をもとに最適化を行う」という学習プロセスを活用したものになる
翻訳や要約、検索システムでは勾配法で最適化できない
強化学習なら、評価指標の値を報酬にしてしまえば学習できる
化学物質構造を最適化しようとしたり、モデルの構造を最適化しようとする研究がある
参考文献
めっちゃ参考になる!!!
—————————————————————————————————————
強化学習-杉山-
強化学習は適用するシステムや環境に関する完全な知識を前提とせず、設計者が「何をすべきか」を報酬という形でアルゴリズムに入力し「どのように実現するか」をデータなどから学習するという特徴がある
1章 準備
強化学習を扱うのに必須である環境を規定するマルコフ決定過程と行動選択ルールを規定する方策モデルを説明する
また標準的な問題では複雑な方策モデルを扱う必要性がないことを示す
登場するモデルとして、大まかに制御対象のシステムと学習対象の方策モデルがある
制御対象のシステムを記述する標準的なすうりモデルであるマルコフ決定過程を導入し、方策モデルと呼ばれる意思決定ルールを規定する関数を説明する
1-1 強化学習とは
1-2 マルコフ決定過程と逐次意思決定問題
1-3 方策
マルコフ決定過程に対するい靴かの方策の集合を定義し、それらの複雑性や関係性についてまたどの方策集合までを考慮すれば十分であるかなどを議論する
これまでに導入した方策や決定的方策は状態sのみに依存し、過去の経験とは独立に行動を選択することからマルコフ法則という
また時間ステップtが進展しても意思決定ルールは変わらないのでマルコフ豊作の中でも定常なマルコフ方策と呼ばれるクラスに属する
1-4 逐次的意思決定問題の定式化
本節では逐次的意思決定の問題設定やマルコフ決定過程の分類を確認する
次に、標準的な目的関数を解説して逐次的意思決定問題を定式化する
環境モデルから最適方策を求めることを学習と言わずプランニングということが多い
2章 プランニング
環境が既知の場合の方策の学習をプランニングという
その特徴や解法は環境が未知の一般の問題を考える上での基礎にもなる
プランニングの問題の特徴を調べることで、環境が未知の場合においてもどのクラスの方策までを扱えば良いかが分かる
プランニング方法の確率的近似としてTD法やQ学習など強化学習の代表的な方法が導出される
2-1 準備
プランニング問題を具体的に定式化するため、目的関数を導入し、目的関数の最適値と価値関数の最適性の関係を整理する
2-2 DP
2-3 DPによる解法
DPの実装として、価値反復法と方策反復法を紹介する
2-4 線型計画方による解法
線型計画法によってもプランニング問題を解くことができる
3章 探索と活用のトレードオフ
ここからは環境が未知の場合の逐次的意思決定問題を考える
データを環境から能動的に収集して学習する問題設定を考えることが多く、データの探索と活用のトレードオフの考慮が必要になる
ここでは探索と活用のトレードオフを説明し、トレードオフを考慮する代表的な方策モデルを紹介する
3-1 概要
ここまではエージェントと環境の相互作用などによるデータからの学習を想定せず、環境(マルコフ決定過程)が既知であると仮定して、最適な方策を求めるプランニング問題を考えた
ここからは実環境や環境シミュレータなどに行動を入力し、報酬や次状態を観測することでデータを収集してデータから方策を学習する状況を考える
3-2 探索と活用のトレードオフ
探索:豊作の精度を高めるためのデータ収集
活用:リターンの最大化
3-3 方策モデル
豊作のモデル化のアプローチは大きく2つに分類される
1つは一般化線型モデルやニューラルネットワークなどの数理モデルを用いて直接的に方策を規定するアプローチ
もう1つのアプローチは状態行動対の効用を出力する効用関数を準備して、qに従い間接的に方策を規定するアプローチです
4章 モデルフリー型の強化学習
強化学習のアプローチは大まかにモデルベース型とモデルフリー型に分類される
モデルベース型は環境を推定し、推定した環境モデルから方策を求める
一方、モデルフリー型では環境を陽に推定することなく方策を学習する
本章ではモデルフリー型を扱い、DPを確率的近似の考え方を用いて標本近似してTD法やQ学習などの強化学習の代表的なアルゴリズムを導出する
5章 モデルベース型の強化学習
環境モデルを推定して、2章のプランニング法などを用いて方策を求めるモデルベース型の強化学習を説明する
また、状態すうが膨大だったり環境モデルにブラックボックスモデルを用いたりして2章の厳密なプランニング法をそのまま利用できない場合でも適用可能なモンテカルロ木探索などの近似的なプランニング法も紹介する
モデルベース型はバッチ学習とオンライン学習の2つがある
オンライン学習はR-max法
バッチ学習は履歴データからMDPモデルを同定→DPや線型計画ほう
もしくはブラックボックスの生成モデルを作成→スパースサンプリング法、UCT法、モンテカルロ木探索
UCT法では新しい状態を経験するたびにノードを作成するが、MCTSは必ずしも新しいノードを追加しない
意思決定系列のランダムシミュレーションによるモンテカルロ評価のたびに少しずつ木を成長させ、根ノードに近い一部のノードのみ保存する
MCTSのアルゴリズム
ノード選択
ノード展開
葉ノード
オンライン学習にはR-max法を扱う
各状態行動対を経験回数に応じて未知か既知かを判定して未知の状態行動対を多く経験するような探索行動を選択する
不確かなときは楽観的に、という考え
4章では環境を推定しないモデルフリー型の強化学習を扱ったが、ここでは環境モデルを陽に推定し、推定した環境モデルを用いて方策を求めるモデルベース型の強化学習を扱う
5-1 問題設定の整理
直接的なアプローチでは、履歴データから環境モデルとしてマルコフ決定過程の状態遷移確率や報酬関数を推定し、2章のプランニング法を用いて最適な方策を予測する
他にも、環境モデルとしてブラックボックスモデルを用意して、モンテカルロ木探索などの探索方法を用いて最適方策を求めるアプローチがある
マルコフ決定過程のプランニング方法では全ての状態について最適行動を求めていたのに対してこのアプローチではエージェントが今いる状態や近く訪れる可能性のあるような関心のある状態についてのみ最適な行動を計算する
そのため、将棋など、状態すうが組み合わせ的に大きくなり、DPで扱うことが難しい問題に対して特に有効である
5-2 環境推定
モデルベース型の強化学習は推定した環境モデルから方策を計算する
5-3 ブラックボックス生成モデルに対するプランニング
生成モデルを用いたプランニングのアプローチとして、状態行動空間の探索を優先するBFSと時間ステップ方向を優先して探索するDFSがある
確率的なBFSの代表的な方法として、スパースサンプリング法、DFSとして信頼区間の上限を利用するUCTを説明する
UCTを一般化したものをモンテカルロ木探索がある
・スパースサンプリング法
・UCT法
・モンテカルロ木探索
5-4 オンラインのモデルベース型強化学習
6章 関数近似を用いた強化学習
状態数が膨大であったり状態空間が連続などの場合、そのまま扱うことは難しく関数近似が有効である
ここでは関数近似を用いた強化学習法を紹介する
また強化学習における関数近似の注意事項も確認する
6-1 概要
本章では元の価値関数や方策関数よりも自由度の小さいような関数近似器を用いてそれらを近似し学習することを考える
6-2 価値関数の関数近似
モデルと同じようになるパラメータを学習することを考える
代表的な関数近似器として次の線型関数近似器がある
4章で紹介したTD学習など関数近似を想定していない方法を拡張して関数近似器の利用を考える
6-3 方策の関数近似
Actor Critic法のように行動価値関数から方策を求めるのではなく、方策パラメータで確率的方策を直接規定してθを学習することを考える
7章 部分観測マルコフ決定過程
状態を十分に観測できないような問題も少なくないので、ここでは状態の部分観測性を扱う部分観測マルコフ決定過程と呼ばれるすうりモデルを導入してその解放を紹介する
7-1 部分観測マルコフ決定家庭の基礎
7-2 POMDPのプランニング
7-3 POMDPの学習
8章 最近の話題
分布強化学習や深層強化学習を紹介する
8-1 分布強化学習
8-2 深層強化学習
Nikkei Robotics 12月号「強化学習で頑健なドア開け、4脚歩行ロボで」
強化学習でロボによる頑健なドア開けが可能に
パナソニックが故障予測や異常検知の新技術、文脈付き正規化フローを使い高性能化
JR東海、トンネル自動検査ロボットを開発
ルートの8割トンネルのリニアに向け省人化
小売チェーン店のデータの空白を埋める
PFNが棚の欠品や在庫を自動認識するロボ
ロボット兵器に関する国際的議論はどの段階にあるか
乾式壁の塗装前仕上げをロボットで自動化
継ぎ目の検知・塗布と平滑化を1台で完結