深層学習メモ 強化学習

ベルマン方程式

動的計画法として知られる数的最適化において、最適化の条件を示す式。
状態 x を外部からの入力 u で制御できると考えているときに、ある種の評価 J の下で u を色々変えてみて、いざ評価 J を最も良くするような u が見つかったときに成り立っているべき方程式である。
強化学習については、下記のようにかける。
 V_{\pi}(s)=\displaystyle\sum_{a}\pi (a|s)\displaystyle\sum_{s'}T(s'|s,a)(R(s|s')+ \gamma V_{\pi}(s'))
ここで、
π:ある時点の方策
s:ある時点の状態
s':次の時点の状態
a:ある時点のアクション
γ:時間による割引率
 V_{\pi}(s):ある状態である方策を選んだ時の価値関数
 \pi (a|s):ある状態から方策πに従ってとる行動確率
 T(s'|s,a):ある状態から次の状態への状態遷移確率
 R(s|s'):ある状態から次の状態に移る時の報酬
 V_{\pi}(s'):次の状態での価値関数
つまり、価値関数は、直近の報酬に1ステップ先の価値関数を足したものである。ただし、方策および遷移確率で未来のとりうる値は枝分かれするので、その期待値をとる。

方策勾配法

 目的関数J(θ)を最大化する方策パラメータベクトルθを勾配から探索する手法。学習率をαとすると、更新式は下記のようにあらわされる。
 \theta_{t+1}=\theta_t+\alpha ∇_θJ(\theta_t)
方策を学習する目的は、エージェントの行動を最適化して機体リターンを最大化することである。そこで、学習開始時の期待リターンとして、その時点での方策  \pi (a|s_0, \theta ) のもとで計算された価値関数Vなので、これを目的関数J(θ)とする。
 J(\theta )=V^{\pi}(s_0)=E\left[ S_0=s_0\right]
この定義をθで微分することで、以下の方策勾配定理を得る。

方策勾配定理

勾配方策定理とは、Q値を用いて、累積報酬を増加させる方策の勾配を求めるための定理である。

 ∇_θJ(θ)\propto E^{\pi}\left[ ∇_{\theta}log\pi (a|s,\theta ))Q_{\pi}(s,a)\right]
J(θ)が平均エピソード長に比例するため、等式ではなく比例関係で結ばれている。

モンテカルロ法

動的行動計画法では、環境のダイナミクスが既知であることが前提となっている。ところが、あらゆる行動に対して起こりうる変化をすべて把握して、それらをすべてモデリング出来るケースは現実には非常に少ない。
そこで、環境のダイナミクスが既知でなくても価値の推定・方策改善を行う手法がモンテカルロ法になる。

強化学習におけるモンテカルロ法では、エピソードに従ってエージェントは行動をとり報酬を得る。各状態で実際に得られた報酬の平均をとることで期待値を計算する。
モンテカルロ法では現在時刻tからエピソード終了までの時間Tまでの報酬の現在価値を求めるので、学習率α、割引率γとして行動状態価値関数は下記のようになる。
 G(S_t,a_t)=\displaystyle \sum_{i=t}^T(\gamma^{i-t}r^i)
 Q(S_t,a_t)←Q(S_t,a_t)+α\left[ G(S_t,a_t)-Q(S_t,a_t)\right]
状態価値関数は、下記のようにあらわせる。
 V(S_t)=max{Q(S_t,a_t)}

TD法

TD法では、予測で修正を行う。そのために正確性はモンテカルロ法より劣るが、修正速度は1行動ごとになるので早い。
そのため、tとt+1の差異を求める。
 Q(s_t,a_t)←Q(s_t, a_t)+α(r_{t+1}+γQ(s_{t+1},a_{a+1})-Q(s_t,a_t))