深層学習-後編2 強化学習
ラピッドチャレンジで学習したことを忘れないように残そうかと。
はい。
強化学習
環境の中で行動を選択できるエージェントを作ることを目標とする。
行動による利益(報酬)をもとに、行動を決定する原理を改善する。
不完全な知識を元に行動しながらデータを収集し、最適な行動を見つける。
試しながら、失敗しながら学習してく。
仕事をしていくイメージ。
わかりやすかったページ
探索と利用のトレードオフ
最初はランダムに動いて(探索)、ある程度わかってきたら経験を利用する。
このトレードオフがあって、学習を進められる。
方策関数と価値関数を学習するのが強化学習。
アルゴリズムには下記がある。
- Q学習
- Sara
- モンテカルロ法
強化学習と通常の教師あり、教師なし学習との違い
そもそも、目標が違う。
- 教師なし、あり学習
データに含まれるパターンを見つけ出すことと、データから予測すること。
- 強化学習
優れた方策を見つける。
強化学習の歴史
Q学習と関数近似法があり、深層学習と組み合わせて使う様になってきている。
Q学習
行動価値観数を、行動するたびに更新することで学習を進める方法関数近似法
価値観数や方策関数を関数近似する手法
ポリシー
エージェントはポリシー $\pi$ にしがって行動します。
この場合、方策とはある状態sの時に行動aを取る確率として定義されます。
\pi(s,a)
価値観数
価値を表す関数。目標設定と考えれば良い。
2種類ある。
- 状態価値観数
- 状態の価値に注目する。
- 行動価値関数
- Q学習で使われる。
- 状態と行動を組み合わせると生成される価値に注目する。
V^{\pi}(s) : 状態価値関数 (状態sにいることの価値)\\
Q^{\pi}(s, a) :行動価値関数(状態 + 行動関数。状態sにいて行動aを取る価値)
方策関数
エージェントがある状態でどの様な行動を取るか決める関数。
価値観数を最大にするように計算する。「今回はどうしよう?」を決める。
\pi(s) = a
方策関数は価値観数を最大にする方法を学習させる。
方策勾配法
方策関数をNNにしてあげればいいのでは?ということ。
- 方策反復法
\theta^{(t+1)} = \theta^{(t)} + \epsilon \nabla J(\theta)
方策関数は
\pi(s, a) |\theta)
s:状態
a:行動
$\theta$ : 重み
J() : NNでいうところの誤差関数
NNだと最小化したいが、深層学習は最大化したい。
- 平均報酬
- 割引報酬和
行動価値関数: Q(s, a) の定義を行い、方策勾配定理が成り立つ。
方策関数を最大化したい。
この式を計算する。
\nabla_{\theta} J(\theta) = \mathbb {E}_{\pi_\theta}[(\nabla_{\theta}log\pi_\theta(a|s)Q^\pi(s,a))]
元の式は下記。
\nabla_{\theta}J(\theta) = \nabla_{\theta} \sum_{a \in A }\pi_{\theta}(a|s)Q^{\pi}(s, a)\\
$\pi_{\theta}(a|s)Q^{\pi}(s, a)$ は、ある行動を取るときの報酬を表す。
それを足し合わせるというのが、上式。
状態価値観数 (ベルマン方程式)
現時点 t におけるQ値は一つ先の時点 t+1 のQ値によって書くことができるという考え方。
Q(s_t, a_t) = E_{s_{t+1}}(r_{t+1} + \gamma E_{a_{t+1}}(Q(s_{t+1}, a_{t+1})))
深層学習の定石
2次元が入ってきたらConvolutionする。
出力が2次元ならSoftmax
出力がもっと小さな次元なら、flatten して結合して集約する。
Alpha Go (Lee)
PolicyNet (方策関数) と Value Net (価値観数)
いずれも畳み込みネットワーク。
PolicyNet : 碁石を打つ位置を計算する
ValueNet : 勝つか負けるか算出する。
Alpha Go の学習ステップ
学習の方法を工夫して、学習させている。
強化学習で学習させるのは大変なので、教師あり学習である程度学習させてから、強化学習をする。
- 教師あり学習による RollOutPolicy と PolicyNet の学習
- 強化学習による PolicyNet の学習
- 強化学習による ValueNet の学習
RollOutPolicy
NNだと学習のためにリソースが必要になる。
NNではなく、線形の方策関数を使いましょう。
PolicyNetに比べて1000倍早い。
Alpha Go (Lee)のモンテカルロ木探索
価値観数を学習させるときに適用された。
下記4ステップで行使される。
- 選択
- 評価
- バックアップ
- 成長
Alpha Go Zero
Alpha Goとの違いは下記。
- 教師あり学習はしない。強化学習だけ。
- 特徴入力(人がこれ、役に立つんじゃない?データを選ぶ)からヒューリステックな要素を排除
- PolicyNetとValueNetを1つのネットワークに統合
- Rsidual Netを導入
- モンテカルロ木探索から RollOut シミュレーションをなくした
Residual Network
ネットワークにショートカット構造(Identity mappingと言われるバイパス接続)を追加して、勾配の爆発、消失を抑える。
100層を超えるネットワークで安定した学習ができる様になった。
単にSkipが入っているだけ。
下記を1単位(1ブロック)にして、積み重ねる。
Residual Blockという。
Convolution → BatchNorm → ReLU → Convolution → BatchNorm → Add → ReLU
ショートカット構造の場合、"Add"から始める。
浅いCNNで十分学習できてしまい、深い中間層が不要な際、不要な層の重みが 0 になる。
アンサンブル効果が得られる。
Residual Networkの派生形
- Residual Block に工夫をしたもの
- Bottleneck
- PreActivation
- NetWork 構造に工夫したもの
- WideResNet
- PyramidNet
Alpha Go Zero のモンテカルロ木探索
下記4ステップで行使される。
- 選択
- 評価および成長
- バックアップ
Alpha Go Zero の学習法
- 自己対局による教師データの作成
- 学習
- ネットワークの更新
Author And Source
この問題について(深層学習-後編2 強化学習), 我々は、より多くの情報をここで見つけました https://qiita.com/gataca27/items/370f3b0978f5e09d7248著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .