Day 4 - 強化学習、AlphaGo のまとめ
この記事は個人的なお勉強用のメモです。
講義
強化学習
強化学習とは
強化学習の位置づけ
機械学習の一つ
- 教師あり学習
- 教師なし学習
- 強化学習
データの特徴を見つけるのが、教師(あり|なし)学習
報酬を最大化する行動を見つけるのが、強化学習
強化学習の応用例
マーケティングでの例
項目 | 説明 |
---|---|
環境 | 会社の販売促進部 |
エージェント | プロフィールと購入履歴に基づいて キャンペーンメールを送る顧客を決めるソフトウェア |
行動 | 顧客ごとに、送信、非送信の二つの行動を選択 |
報酬 | 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 で表す
学習のステップ
- 教師あり学習による RollOutPolicy と PolicyNet の学習
- 強化学習による PolicyNet の学習
- 強化学習による 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 つ。
- データの効率が良い。
理由:パラメータの更新時に、同じ経験を何回も使えるため。 - 更新の分散を軽減できる。
理由:系列方向の相関を断ち切れるため。 - 直前に取得したデータが次の行動の決定に及ぼす影響を軽減できる。
これにより、パラメータの振動やパラメータの発散を避けることができる。
理由:過去の様々な状態で行動分布が平均化されるため。
目標 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 値に制限すること。
「報酬のスケールが与えられたタスクによって大きく異なる」という問題を解消。
ゲームごとに学習率を調整する必要がなくなった。
Author And Source
この問題について(Day 4 - 強化学習、AlphaGo のまとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/amateur2020/items/4cfc5a616b40982409cd著者帰属:元の著者の情報は、元の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 .