【技術本】ゼロから作るDeepLearning❹
https://amzn.to/4eSJixG
【技術本】ゼロから作るDeepLearning❹
へポスト
本書の前半1〜6章は強化学習の基礎(実装あり)を紹介し、後半の7〜9章でディープラーニングの強化学習問題を解くところまで(実装あり)を紹介。そして10章で更にその先の新技術(文章のみ)の紹介まで書かれている。
強化学習の基礎は、以下の問題を実装を踏まえて解いていく。
・複数のスロットから勝率のいいスロットを見つけ出して報酬を最大にする問題
・小さなサイズ(縦3、横4ほど)のグリッドワールドにグリッドごとに果物(報酬)と爆弾(ペナルティ)が配置してあり、キャラクターがどのような行動(移動)をすれば報酬を最大にできるかの問題
ディープラーニングの強化学習においては、オープンソースで提供されている強化学習用のライブラリに含まれているゲーム「カートポール」を題材に、より報酬が多くなる行動を強化学習させていく。最終的にはAtari(あのゲーム会社)のゲームを解く入り口(実装はなし、アドバイスまで 以降は読者の腕の見せ所)まで紹介してくれている。
後半のディープラーニングを利用した強化学習においては、前作part 3で実装したフレームワーク「DeZero」を活用するため、本書のコンセプト(ゼロから作るというコンセプト)的には前作を読破しているのが望ましいと感じた。
強化学習の基礎からじっくり中身を紹介してくれており、どうやってディープラーニングの中で強化学習を行なっているのか、適応しているのかその過程や中身を知りたい人に価値が出てくる著作だと感じた。
以下、気になった内容メモ
ーーーー
1章 バンディット
機械学習の区分:
教師あり学習:入力と出力のペアデータ(画像、正解ラベル)を使って、入力から出力への変換方法を学習
教師なし学習:正解ラベルなしのデータのみでデータに潜む構造を学習
強化学習:エージェント(行動する主体)が、ある環境に置かれ、環境の「状態」を観測し、それに基づき「行動」をする。その結果として環境の状態が変化し、エージェントは環境から「報酬」をもらうと同時に、「新しい環境の状態」を観測する。
目標は、エージェントが得る報酬の総和を最大にする行動パターンを身に付ける事。
>歩く学習の場合、進んだ距離が報酬。行動は、手足を動かす事。より効率のいい歩行方法を試行錯誤して自分で学習し最適解を求められる。
バンディット問題
複数のスロットマシーン(コインが出やすいのや、出にくいの色々ある)を使って、より多くのコインを増やす方法を考える問題。
スロットマシンのコインの出るランダム性>離散型の確率分布
もっとも期待値が大きいスロットマシンを選ぶのがベスト
しかし、プレイヤーはスロットマシンの報酬の期待値をしることができない
プレイヤーは、スロットマシンの価値(期待値)を精度よく測定することが求められる
より多くプレイして得られた報酬の平均値(標本平均)を求める。
活用:短期的視野で良いスロットを選びたいのなら、標本平均が大きいスロットを選ぶ
探索:長期的視野で良いスロットを選びたいなら、色々なスロットを探索して試す必要あり
活用と探索の良いバランスを取ることが重要:要パラメータ調整
アルゴリズム:イプシロン・グリーディ法
強化学習のアルゴリズム比較は、多くはランダム性があるので、一回の比較では正確性がない。>同じ実験をたくさん行い、その平均を比較するのが一つの方法
バンディット問題は、以下に分かれる
定常問題:スロット個体の勝率は固定
非定常問題:スロットの個体の勝率が変わる
過去に得た報酬ほど指数移動平均的に小さくなるようにすれば、非定常問題にも対応できるようになる。
-----
2章 マルコフ決定過程
エージェントの行動によって状況が変わる問題
囲碁、将棋などの状況
小さなサイズのグリッド状(縦3、横4くらい)のマップに、フルーツ(報酬+1)や爆弾(報酬ー2)が配置されている。
エージェントは、グリッドを移動してフルーツを取り、報酬が高くなる行動を学習する。
爆弾の向こう側にフルーツの山(報酬+6)がある場合など、は爆弾をとってフルーツの山を取る。
エージェントは目先の報酬だけでなく、将来を見越して報酬の総和を最大化することが求められる。
報酬を得るごとに状態が刻一刻と変化する。
>例題では2マスのグリッドワールドの問題を解く
エージェントの方策
・決定論的方策:ある状態では必ず同じ行動をする
・確率的方策:どの行動をするか確率で決定する
分類
・エピソードタスク:終わりのある問題。囲碁、将棋など
・連続タスク:終わりのない問題。在庫管理など
マルコフ決定過程では、最適方策が「決定論的方策」で必ず一つ存在する
-----
3章 ベルマン方程式
マルコフ決定過程で成り立つ重要な方程式
強化学習の問題を解くための重要な基礎を与えてくれる。
無限に枝分かれしていくバックアップ線図のような
無限に続く計算を有限の連立方程式に変換できる。
ベルマン最適方程式:方策が最適であるという性質のみに特化した方程式
ベルマン方程式よりシンプル
-----
4章 動的計画法
3章までのベルマン方程式で連立方程式を明示して解けるのは小さな問題まで
より大きな問題を解くためのものが動的計画法
環境のモデル(状態遷移確率、報酬関数)が既知の場合に有効
状態と行動の数がある程度大きくなっても解くことができる。
>例題では2マスのグリッドワールドから、3*4マスのグリッドワールドへ進歩
方策評価:ある方策が与えられたら、その価値関数などを求めること
方策制御:方策を制御して最適方策を調整すること
方策反復法:評価と改善の2フェーズを反復する
価値反復法:評価と改善を融合させた手法
上記二つは共に、グリッド上で報酬の取得をゴールとし、全てのグリッドでペナルティを避けた進行方向(方策)をとる最適方策を導き出せる
-----
5章 モンテカルロ法
環境モデル(状態遷移確率、報酬関数)が未知でも有効な手法
データのサンプリングを繰り返しおこなって、その結果から推定する手法の総称
「状態、行動、報酬」の経験により価値関数を推定することができる
分布モデル:確率分布として表されるモデル
サンプルモデル:サンプリングさえできれば良いというモデル
サンプルモデルを使って期待値を計算する場合は、たくさんのサンプリングをとってその平均値を取る。これがモンテカルロ法。
サンプル数無限>大数の法則により平均値は正しい値に収束する
モンテカルロ法で3*4マスのグリッドワールド問題を解く
方策評価、方策制御において、動的計画法とほぼ同じの結果を導き出せる。
-----
6章 TD法
モンテカルロ法は、エピソードタスクが終わりにたどり着いてからでないと、価値関数の更新ができない。エピソードの終わりになって初めて「収益」が確定するため。
環境モデルを使わずに、行動ひとつごとに価値関数を更新するのがTD法。
「今」と「次」の情報から価値関数を更新する。
アルゴリズム
・SARSA:方策オン型の手法>方策オフ型に拡張もできる
・Q学習:方策オフ型の手法。重点サンプリングをせずにQ関数を更新でき、効率的に安定して更新できる>強化学習分野において重要なアルゴリズム
-----
7章 ニューラルネットワークとQ学習
現実の問題は大きく複雑。
チェスでさえ駒の並びパターンは10^123通りある。
それらの状態をテーブルとして保持するのは現実的でない。
そのテーブルひとつひとつの要素を独立して評価・改善していくのは現実的でない
そこで、Q関数をコンパクトな関数で近似する。その有力な方法がディープラーニング
ゼロから作るDeep Learning 3で実装したフレームワーク DeZeroを使用する。
DeZeroの基礎、使い方
線形回帰の実装
ニューラルネットワークで非線形データの問題を解く
ニューラルネットワークを使ったQ学習の実装
>例として3*4のグリッドワールド問題を解く
-----
8章 DQN
テレビゲームのような複雑なタスクもプレイできる
新たに「経験再生」「ターゲットネットワーク」の技術が使われる
OpenAI Gym
強化学習のための学習材料(ゲームみたいなもの)の環境が用意されたオープンソースライブラリ
DQNの経験再生、ターゲットネットワークを実装して、OpenAI Gymのゲームを強化学習する
DQNの拡張
・Double DQN
・優先度付き経験再生
・Dueling DQN
-----
9章 方策勾配法
価値ベースの手法:Q学習、SARSA、モンテカルロ法
方策ベースの手法:方策勾配法, REINFORCE(方策勾配法の改良)
価値ベースかつ方策ベース:Actor-Critic
方策勾配法の実装
RAINFORCEの実装、ベースライン技術による改善
Actor-Criticの実装
-----
10章 さらに先へ
方策勾配法系アルゴリズム
・A3C, A2C:分散学習を行うアルゴリズム
・DDPG:決定論的な方策を持つアルゴリズム
・TRPO, PPO:目的関数に制約を追加するアルゴリズム
DQN系列のアルゴリズム
・Double DQN
・優先度付き経験再生
・Dueling DQN
・カテゴリカルDQN
・Noisy Network
・Rainbow
深層強化学習の事例の紹介
・ボードゲームの学習
・ロボット制御
・NAS:ディープラーニングのアーキテクチャの自動設計
・自動運転
・半導体チップの生成
-----
付録A 方策オフ型のモテんカルロ法
付録B nステップのTD法
付録C Double DQNの理解
付録D 方策勾配法の証明
以上
へポスト
