LoginSignup
0
0

More than 3 years have passed since last update.

深層学習 Day 4 - 強化学習、AlphaGo のまとめ

Last updated at Posted at 2020-11-29

この記事は個人的なお勉強用のメモです。

講義

強化学習

強化学習とは

強化学習の位置づけ
機械学習の一つ

  • 教師あり学習
  • 教師なし学習
  • 強化学習

データの特徴を見つけるのが、教師(あり|なし)学習
報酬を最大化する行動を見つけるのが、強化学習

強化学習の応用例

マーケティングでの例

項目 説明
環境 会社の販売促進部
エージェント プロフィールと購入履歴に基づいて
キャンペーンメールを送る顧客を決めるソフトウェア
行動 顧客ごとに、送信、非送信の二つの行動を選択
報酬 2種類の報酬
負の報酬:キャンペーンのコスト
正の報酬:キャンペーンで生み出されると推測される売上

目的は報酬を最大にすること(コストをなるべく小さくしつつ、売上を最大にする)

探索と利用のトレードオフ

最初はランダムでキャンペーンメールを送る。
キャンペーンメール後の反応で売上を大きくする方法がわかってくる。
少しずつより良い行動に変えていく。

探索不足 ⇔ 利用不足 のトレードオフ

探索不足だと、他のもっとベストな行動を見つけられない。
利用不足だと、過去の経験が活かせない。

強化学習のイメージ

職場で仕事をするイメージに近い。

  • 環境(職場のようなもの)
  • エージェント(主人公)

エージェント(主人公)は環境(職場)は行動(仕事)を頑張る。
頑張った結果、環境から報酬(ボーナス)がもらえる。
何をすると報酬が多くなるか、方策(仕事のやり方)を考える。
環境は状態が変わることがある。

強化学習とは、よい報酬が得られるよう、方策を訓練すること。
方策関数と行動価値関数を学習する。

方策関数:$\Pi(s,a)$
行動価値関数:$Q(s,a)$

強化学習の差分

強化学習と教師あり、教師なし学習は目標が違う。

分類 目標
教師あり、教師なし学習 データに含まれるパターン(特徴量)を見つける
そのデータから予測する
強化学習 優れた方策を見つける

強化学習の歴史

以前はコンピュータの性能不足のため、実現できなかった。
強化学習は計算量が多く必要。深層学習より計算量が多い場合も。

Q学習と関数近似法によって強化学習が進んだ。
Q学習では、行動価値関数を使う。
関数近似法は、関数の中を学習させる方法。価値関数や方策関数を関数近似。

行動価値関数

2種類の価値関数

  • 状態価値関数(状態の価値に注目)
  • 行動価値関数(状態と行動を組み合わせた価値に注目)

方策関数

ある状態でどのような行動をとるのかの確率を与える関数。

価値関数と密接に関係する。
価値関数が最大になるような行動をとるよう、方策関数はエージェントの行動を決める。

囲碁の例

  • どこに碁石を置くか決めるのが方策関数
  • やり続けたら最終的に勝てそうか情報提供

方策勾配法

方策勾配法の数式

\theta^{(t+1)}=\theta^{(t)}+\epsilon \nabla J(\theta)

$\theta$:重みに相当
$\epsilon$:学習率
$\nabla$:微分という意味
$J(\theta)$:誤差関数に相当

【注意】
勾配降下法では符号がマイナス(誤差を小さく)だが
方策勾配法では符号がプラス(報酬を大きく)であることに注意。

方策勾配定理の数式

\nabla_{\theta} J(\theta) = E_{\pi_\theta}\Big[ \nabla_\theta \log \pi_\theta (a|s) Q^\pi (s,a) \Big]

変形前の式はこちら。

\nabla_{\theta} J(\theta) = \nabla_\theta \sum_{a\in A}\Big[ \pi_\theta (a|s) Q^\pi (s,a) \Big]

$A$:取りえるすべての行動
$a$:ある行動

AlphaGo

  • AlphaGo Lee
  • AlphaGo Zero

AlphaGo Lee

方策関数 PolicyNet(どこに打つか)

  • CNN
  • 入力は 19x19、48 チャンネル
  • Convolution + ReLU
  • 出力 SoftMax で 19x19 マスの 2次元の着手予想確率

価値関数 ValueNet(そこに打つとどうなるか)

  • CNN
  • 入力は 19x19、49 チャンネル
  • Convolution + ReLU ⇒ 全結合で1次元に変換
  • 出力 tanh で勝率を -1~1 で表す

学習のステップ

  1. 教師あり学習による RollOutPolicy と PolicyNet の学習
  2. 強化学習による PolicyNet の学習
  3. 強化学習による ValueNet の学習

最初に教師あり学習を使うのがポイント。

RollOutPolicy の教師あり学習

高速に着手確率を出すために使用。
線形の方策関数(NNではない)。

PolicyNet の教師あり学習

過去の棋譜データで教師あり学習を実施。

モンテカルロ木探索

囲碁ソフトで最も有効とされている探索法。
手を打って、そのあとランダムに打ち、勝率を出力する。
それを複数回繰り返し、勝敗を集計して、着手の優劣を決定する。

その後、優れた手を着手して、モンテカルロ木探索を繰り返すことで
探索木を成長させる。

AlphaGo Zero

AlphaGo Lee と AlphaGo Zero の違い。

  • 強化学習のみ(教師あり学習なし)
  • 石の配置のみ(ヒューリスティックな要素を排除)
  • PolicyNet と ValueNet を統合
  • Residual Net を導入
  • モンテカルロ木探索から RollOut シミュレーションを無くした

PolicyValueNet

  • 入力 19x19、17 チャンネル
  • Convolution + Batch Normalize + ReLU
  • Residual Network(勾配消失や勾配爆発を防ぐためのショートカットあり)
  • 途中で Policy 向けと Value 向けに枝分かれして、2種類の出力

Residual Networkの派生形

丸ごと覚えるのは大変なので、特徴のみ記載。

Residual Blockの工夫

  • Bottleneck
    1x1 Convolution、次元削減、次元復元の計3層構造
  • PreActivation
    Block の並び替え

Network 構造の工夫

  • WideResNet
    Convolution の Filter 数が k 倍
  • PyramidNet
    各層で Filter 数を増加

関連記事

シラバスを見たところ、価値反復法、具体的には DQN が
シラバスの強化学習に含まれているので、DQN についてお勉強。

DQN

Deep Q-Network
Googleの子会社ディープマインドが開発した人工知能。
深層強化学習アルゴリズムを利用。
一部の電子ゲームにおいて人間以上のスコアを獲得できている。

DQNの特徴は以下の3つ。

  • 体験再生(experience replay)
  • 目標 Q ネットワークの固定
  • 報酬のクリッピング

体験再生(experience replay)

各タイムステップにおけるエージェントの経験をデータ集合に蓄積する。
学習時に、蓄積されたサンプルの中から経験をランダムに取り出し、
損失の計算に用いる。
利点は次の 3 つ。

  1. データの効率が良い。
    理由:パラメータの更新時に、同じ経験を何回も使えるため。
  2. 更新の分散を軽減できる。
    理由:系列方向の相関を断ち切れるため。
  3. 直前に取得したデータが次の行動の決定に及ぼす影響を軽減できる。
    これにより、パラメータの振動やパラメータの発散を避けることができる。
    理由:過去の様々な状態で行動分布が平均化されるため。

目標 Q ネットワークの固定

「価値関数が小さく更新されただけでも、選ばれる行動が大きく変わってしまう」問題を解決。
パラメータを固定し、一定周期でこれを更新することで学習を安定させる。

損失関数の数式

L(\theta) = E_{s,a,r,s'~D} \Bigl[ (r + \gamma \max_{a'} Q (s',a';\theta^{-})- Q(s,a;\theta)\Bigr]

ポイント
・$\max Q()$ の符号はプラス
・$Q()$ の符号はマイナス
・$\max Q()$ 内の $\theta$ は固定($\theta^{-}$)
・$Q()$ 内の $\theta$ は可変

報酬のクリッピング

報酬の値を {-1, 0, 1} の 3 値に制限すること。
「報酬のスケールが与えられたタスクによって大きく異なる」という問題を解消。
ゲームごとに学習率を調整する必要がなくなった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0