E資格学習 深層学習 Day4 ① 強化学習+②AlphaGo
強化学習
要点まとめ
- Q学習と関数近似法を組み合わせた手法の登場により、急速に発展してきた。
- 人間の世界で例えるとこんな感じ:ビジネスマン(エージェント)が常に変化の激しい(状態S)会社(環境)において、どうすれば物が売れるかを考えながら(方策Π)、マーケティング施策を企画・実行し(行動)、職場で成果をあげることでボーナスを得られ(正の報酬)、それによりモチベーションがさらに高まる(価値V)
- 強化学習では、初期の段階では不完全な知識をもとにランダムに行動し、徐々にベターな方向に行動指針を変えていくイメージ。ただし、過去のデータのみを頼りにしすぎると、「探索が足りない状態」となり、一方で未知の行動のみ取り続けると、「過去の成功体験を活かせない状態」となり両者はトレードオフの関係になる。
- 強化学習では、報酬をもらえるようにどのように行動すべきかを考える①方策(Π)と、エージェントにとっての②価値(V)の2つが学習ターゲットとなる。
- 方策 → 方策関数:Π(s, a)
- 価値 → 行動価値関数:Q(s, a )
方策関数
- 方策関数: その都度の行動をどうするかを決定する関数
- ある状態でどのような行動をとるのか確率を与えている。
- 価値関数と密接に関わっている。
→価値関数の価値を最大化するための方策を方策関数で決定する。
価値関数(状態価値関数 or 行動価値関数)
何がエージェントにとって良いことなのか = 価値。
どの情報を使って価値とみなすかによって、以下の2種類の考え方がある。
- 状態価値関数:環境の状態の価値にのみ注目する場合(例)どういう盤面が最も価値が高いか。
- 行動価値関数:環境の状態とエージェントの行動を組み合わせた価値に注目する場合(例)どういう盤面でどういう一手を打つのが最も価値が高いか。
- 価値関数では、ゴールまで今の施策を続けた時の報酬の予測値が得られる
(=やり続けると最終的にどうなるかがわかる)
- 昨今注目されているのは、行動価値関数
- 状態価値関数:
- 行動価値関数:
方策勾配法
- モチベーションとしては、方策関数を学習可能な関数にしたい。
- 方策関数πをθでのニューラルネットワークで考える。
- θの学習を で更新できるようにする。
- θ=重みパラメータw、J =誤差Eのようなイメージだが、強化学習の場合は、θを期待収益とすることで、最小化ではなく最大化する方向で学習を考える。
(実例1)AlphaGo Lee
- 2つの畳み込みネットワークで構成されている → 方策関数(Policy Net) と価値関数(Value Net)
- Policy Netの構造:
- 入力値は19×19×48ch(石、着手履歴、故宮展、取れる石の数 etc)の盤面情報
- Conv層(カーネル:5×5、ストライド:1、パディング:2 192ch)→ReLU
- Conv層(カーネル:3×3、ストライド:1、パディング:1 192ch)→ReLU ×11回
- Conv層(カーネル:1×1、ストライド:1)
- SoftMax
- 出力(19×19マスの着手予想確率が出力される。どこに打てばよいか)
- Value Netの構造:
(実例2)AlphaGo Zero
- AlphaGo Leeと違い、教師あり学習は一切使わない。
- 人間が目利きして入力値にしていた(ヒューリスティックな要素)盤面の特徴量を排除。→石の配置だけにした。
- PolicyNetとValueNetに分けずに一つに統合。
- Residual Network(ショートカット構造:スキップ接続)を39層つなげて導入したことで、深いネットワークでも勾配消失、勾配爆発を抑えることに成功するだけでなく、ネットワークの多くのバリエーションを生み出しアンサンブル的な効果も得た。(工夫点:WideResNet、PyramidNet)
- モンテカルロ木探索法のRoll Outシミュレーションをなくした。
- PolicyValueNetの構造:
- 入力値は19×19×17chの盤面情報
- Conv層(カーネル:3×3、ストライド:1、256ch)→ Batch Norm → ReLU
- Residual Block (Residual Network×39)
以下Policy と Valueは枝分かれして並列に処理される
↓Policy出力部分
↓Value出力部分