E資格学習 深層学習 Day4 ① 強化学習+②AlphaGo

強化学習

要点まとめ
  • 強化学習は、教師あり学習教師なし学習とは少し毛色が違う。データのパターンを見つけ出し、予測するわけではない。報酬というモチベーションをもとに、優れた方策(行動を決定する指針)を見つけることが目標。
  • Q学習と関数近似法を組み合わせた手法の登場により、急速に発展してきた。
  • 人間の世界で例えるとこんな感じ:ビジネスマン(エージェント)が常に変化の激しい(状態S)会社(環境)において、どうすれば物が売れるかを考えながら(方策Π)、マーケティング施策を企画・実行し(行動)、職場で成果をあげることでボーナスを得られ(正の報酬)、それによりモチベーションがさらに高まる(価値V)
  • 強化学習では、初期の段階では不完全な知識をもとにランダムに行動し、徐々にベターな方向に行動指針を変えていくイメージ。ただし、過去のデータのみを頼りにしすぎると、「探索が足りない状態」となり、一方で未知の行動のみ取り続けると、「過去の成功体験を活かせない状態」となり両者はトレードオフの関係になる。
  • 強化学習では、報酬をもらえるようにどのように行動すべきかを考える①方策(Π)と、エージェントにとっての②価値(V)の2つが学習ターゲットとなる。
  1. 方策 → 方策関数:Π(s, a) 
  2. 価値 → 行動価値関数:Q(s, a )
方策関数
  • 方策関数: π(s) = a その都度の行動をどうするかを決定する関数
  • ある状態でどのような行動をとるのか確率を与えている。
  • 価値関数と密接に関わっている。

 →価値関数の価値を最大化するための方策を方策関数で決定する。

価値関数(状態価値関数 or 行動価値関数)

何がエージェントにとって良いことなのか = 価値。
どの情報を使って価値とみなすかによって、以下の2種類の考え方がある。

  1. 状態価値関数:環境の状態の価値にのみ注目する場合(例)どういう盤面が最も価値が高いか。
  2. 行動価値関数:環境の状態とエージェントの行動を組み合わせた価値に注目する場合(例)どういう盤面でどういう一手を打つのが最も価値が高いか。
  • 価値関数では、ゴールまで今の施策を続けた時の報酬の予測値が得られる

 (=やり続けると最終的にどうなるかがわかる)

  • 昨今注目されているのは、行動価値関数
  1. 状態価値関数: V^{n}(s)
  2. 行動価値関数: Q^{n}(s, a)
方策勾配法
  • モチベーションとしては、方策関数を学習可能な関数にしたい。
  • 方策関数πをθでのニューラルネットワークで考える。
  • θの学習を  θ^{t+1} = θ^{t}+ε∇J(θ) で更新できるようにする。
  • θ=重みパラメータw、J =誤差Eのようなイメージだが、強化学習の場合は、θを期待収益とすることで、最小化ではなく最大化する方向で学習を考える。
(実例1)AlphaGo Lee
  • 2つの畳み込みネットワークで構成されている → 方策関数(Policy Net) と価値関数(Value Net)
  • Policy Netの構造:
  1. 入力値は19×19×48ch(石、着手履歴、故宮展、取れる石の数 etc)の盤面情報
  2. Conv層(カーネル:5×5、ストライド:1、パディング:2 192ch)→ReLU
  3. Conv層(カーネル:3×3、ストライド:1、パディング:1 192ch)→ReLU ×11回
  4. Conv層(カーネル:1×1、ストライド:1)
  5. SoftMax
  6. 出力(19×19マスの着手予想確率が出力される。どこに打てばよいか)

  1. 入力値は19×19×49ch(Policy Netの入力に加え、「手番」が追加)の盤面情報
  2. Conv層(カーネル:5×5、ストライド:1、パディング:2 192ch)→ReLU
  3. Conv層(カーネル:3×3、ストライド:1、パディング:1 192ch)→ReLU ×11回
  4. Conv層(カーネル:1×1、ストライド:1)
  5. Fratten →全結合層 256
  6. 全結合層 1
  7. TanH関数(-∞〜∞ を-1 ~ 1に変換)
  8. 出力(-1 ~ 1の勝つか、負けるかの勝率を出力とする)
  • どうやって学習させるのか?
  • 強化学習をいきなり実施するのは計算量が非常に多くコストが高い。そこで、方策関数については、人間と人間の対局データ(3000万局面分の教師データ)を使い、手番を予測する教師あり学習を先に施行している。また、RollOutPolicyという工夫により、手番予測について3ミリ秒→3マイクロ秒にスピード化実現。
  • 教師あり学習で、RollOutPolicy(手番出力の高速版)とPolicyNetを学習 → 強化学習でPolicy Net →強化学習Value Netの順番で学習させる。
  • 価値関数の更新時にモンテカルロ木探索」が使われている。
(実例2)AlphaGo Zero
  • AlphaGo Leeと違い、教師あり学習は一切使わない。
  • 人間が目利きして入力値にしていた(ヒューリスティックな要素)盤面の特徴量を排除。→石の配置だけにした。
  • PolicyNetとValueNetに分けずに一つに統合。
  • Residual Network(ショートカット構造:スキップ接続)を39層つなげて導入したことで、深いネットワークでも勾配消失、勾配爆発を抑えることに成功するだけでなく、ネットワークの多くのバリエーションを生み出しアンサンブル的な効果も得た。(工夫点:WideResNet、PyramidNet)
  • モンテカルロ木探索法のRoll Outシミュレーションをなくした。
  • PolicyValueNetの構造:
  1. 入力値は19×19×17chの盤面情報
  2. Conv層(カーネル:3×3、ストライド:1、256ch)→ Batch Norm → ReLU
  3. Residual Block (Residual Network×39)

以下Policy と Valueは枝分かれして並列に処理される
↓Policy出力部分

  1. Conv層(カーネル:1×1、ストライド:1、2ch)→Batch Norm →ReLU
  2. Fratten →全結合層 362
  3. SoftMax
  4. Policy出力

Value出力部分

  1. Conv層(カーネル:1×1、ストライド:1)→Batch Norm →ReLU
  2. Fratten →全結合層 256
  3. 全結合層 1
  4. TanH関数(-∞〜∞ を-1 ~ 1に変換)
  5. 出力(-1 ~ 1の勝つか、負けるかの勝率を出力とする)