強化学習

動的計画法(DP法)

特徴:環境の完全なモデルがマルコフ決定過程として与えられる場合にのみ適用できる方法である.
すべての遷移の完全な確率分布を必要とするため、適応できる問題が限られる.

1. 方策勾配法

勾配降下法では符号がマイナス(誤差を小さく)だが、方策勾配法では符号がプラス(報酬を大きく)である.

③方策をパラメータθで直接モデル化し、期待収益J(θ)を目的関数として勾配を用いて最適化する.学習率をηと置くと、方策勾配法は以下のように表される.
\theta \leftarrow \theta + \eta\nabla_\theta J(\theta)

方策勾配定理は以下の式となる.
勾配を方策勾配定理を用いて表すと、 \nabla_{\theta} J(\theta) = \sum_s d^ {\pi\theta} (s)  \sum_a \nabla_\theta \pi_\theta (a|s,\theta) Q^{\pi\theta}(s,a)のようになる.
変形すると、勾配 \nabla_{\theta} J(\theta) = E_{\pi_\theta}[ \nabla_\theta \log \pi_\theta (a|s) Q^{\pi\theta} (s,a) ]

 \nabla pi\theta(a |s)

2. 価値反復法

報酬のサンプリング

1. TD法

TD学習:目標の価値と現在の価値のずれを修正していくことで、価値関数を推定する.(SarsaとQ学習)

Sarsa

Sarseにおける行動価値関数の更新式:  Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \alpha[R_{t+1} + \gamma Q(s_{t+1},A_{t+1}) - Q(S_t,A_t)

Q学習

Sarseにおける行動価値関数の更新式:  Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \alpha[R_{t+1} + \gamma max Q(s_{t+1},a') - Q(S_t,A_t)

A3C

2. モンテカルロ法(MC法)

Q学習やSarsaとは違い、Q値の更新のときに「次の時点のQ値」を使わない.
行動の修正を行う方法として、tとt+1の差異のような行動1回での差異ではなく、t+2,t+3・・・Tまでの1エピソードでの差異を求めること.
 
 V(s_t) \leftarrow V(s_t) + \alpha(r_{t+1} + \gamma V(s_{t+1}) - V(s_t))

行動の修正を実績に基づいて行うため、エピソードが終わるまでは修正できない.(1回の行動の直後に予測で修正できない)
従って、修正の妥当性が得られるが、修正スピードが遅い.

強化学習アルゴリズム

Q学習 DQN Deep Q-Networks(2013年)

Atari2600の中の7つゲームを学習させたところ、ゲームごとにチューニングせずに、専門家の能力に達成した.
畳み込みNNを用いて行動価値が目標として、行動価値に近づく学習する.
それまで安定した学習できなかったが、DQNは学習を安定させた.

学習安定の工夫点3つ:

①体験再生, ②目標Q-networksの固定, ③報酬のクリッピング

①体験再生

i)パラメータの更新時、同じ経験を何回も学習に使えるため、データの効率がオンライン学習より良い.

ii)ランダムに取り出された経験を用いて、損失を計算するため、入力系列の相関を断ち切ることができ、更新の分散を軽減できる

iii)過去の様々な状態で行動分布が平均化されため、直前に取得したデータが次の行動の決定に及ぼす影響を軽減できるて、パラメータの振動を避ける.

②目標Q-networksの固定

「価値関数が小さく更新されただけでも選ばれる行動が大きく変わってしまう」の問題に対して、目標値の算出に用いるQ-networksのパラメータを固定して、一定周期で更新して学習を安定させる.
損失関数は以下の式で表せる.
 L_i(\theta) = E \Big[ \Big( r + \gamma \max_{a'} Q_\pi(s', a'; \theta^-)- Q_{\pi}(s, a; \theta) \Big)^2 ]

目標値の項は、 \gamma \max_{a'} Q_\pi(s', a'; \theta^- )
 \theta^- は目標QNetworksで固定されるパラメータである.

更新式

 Q(s_t, a_t) \leftarrow (1-\alpha)Q(s_t, a_t) + \alpha(r_{t+1} + \gamma \max_{a_{t+1}}Q(s_{t+1}, a_{t+1}))
第1項が現在のQ値、第2項が新しいQ値にあたり、その二項が 1−αと α で足し合わされるため、現在のQ値を第2項にむかって αぶんだけ近づける更新する.
 Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha(r_{t+1} + \gamma \max_{a_{t+1}}Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t))

エージェントは自由に行動を選ぶことができるため、現在推定されている価値のmax値をもって価値の見積もりとする.

特徴
  • SARSAと異なり、行動価値関数Qの更新が行動の決定方法に依存しない.

  • SARSAよりも行動価値関数の収束が速くなるが保証しない.

  • 「行動を決定する方策」と「行動価値関数の更新に用いる方策」が異なる.

  • 行動価値関数を更新すると、行動価値が小さい探索結果は反映にくい.

SARSA サルサ

Q学習では、期待値の見積もりを現在推定されている値の最大値で置き換えるが、
Sarsa の場合、実際に行動してみたらどうなったかを使って期待値の見積もりを置き換える.
そのため、Sarsa では現在の価値を更新するためには、エージェントが実際にもう一度行動をおこなう必要がある.

更新式

  Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha(r_{t+1} + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t))

特徴
  • 行動価値関数を更新するとき、行動価値の小さい探索結果も反映されやすいという特徴があるが、計算が不安定になりやすい.
  • Q学習も同じ、経験していない「状態と行動の組み合わせ」に対する行動価値関数は更新されない.
  • 方策オン型の手法で、「行動を決定する方策」と「行動価値関数の更新に用いる方策」は同一のものである.
  • 方策勾配法は用いられない.確率的方策 \piのパラメータθを勾配法で更新していく.

マルコフ決定過程


参考先:CS 294 Deep Reinforcement Learning, Fall 2017


ある期間で得られる報酬の累積を収益という.時刻tでの収益Gtは、時刻t+1以降の報酬の割引累積和であり、0<γ<1を満たす割引率γを用いると
 \sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} \quad となる.
状態価値と行動価値の関係は、 V^\pi(s) = \sum_a\pi(s,a)  Q^\pi(s,a) となる.時刻tにおいて選択可能なすべての行動aに関する期待値をとると、状態価値関数V(s)になる
強化学習まとめ① 〜有限マルコフ決定過程(Finite MDP)〜 - あつまれ統計の森

状態価値関数の導出とBellman方程式:
 V^\pi(s) = \sum_a\pi(s,a) \sum_{s'r} P(s',r | s,a) [r+ \gamma V^{\pi}(s')]]
価値関数は、直近の報酬に1ステップ先の価値関数を足したものである.
ただし、方策および遷移確率で未来のとりうる値は枝分かれするので、その期待値をとる.

行動価値関数の導出とBellman方程式:
 Q^\pi(s,a) = \sum_{s'r} P(s',r | s,a) [r+ \gamma V^{\pi}(s')]]

【考え方を理解しよう】強化学習の状態価値関数と行動価値関数を解説 - DXコンサルの日進月歩奮闘記

AlphaGo (2015年)

【E資格】AlphaGo数式編【AI】|ゆゆ|note

[学習]
畳み込みニューラルネットワークでモデル化した状態価値関数および方策関数を用いることで、探索の際の深さと幅を減らす.
学習過程が3つのステージで構成される.
第1ステージ、教師あり学習によって囲碁の熟年者の手をNNに学習させる。これをSL(Supervised Learning)方策ネットワークと呼ぶ.
ネットワークのパラメータθの更新式は以下である。

  • SLポリシーネットワークのパラメータ更新
  • RLポリシーネットワークのパラメータ更新
  • バリューネットワークのパラメータ更新

[対局]
モンテカルロ木探索手法で相手の手を読む. 方策ネットワークと価値ネットワークを用いる.
AlphaGo実戦(対局)時の数式
暫定勝率=Q(s,a) + u(s,a)

参考文献
深層学習 Day 4 - 強化学習、AlphaGo のまとめ - Qiita



引用先:SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜