DPGの方策勾配定理を以下に示します。
\begin{eqnarray}
\frac{{\partial}J}{\partial\theta}(\pi_\theta)
&=& E_{s\ \sim\ d^{\pi_\theta}} \left[ \frac{{\partial}Q^{\pi_\theta}\left(s, \pi_\theta(s)\right)}{\partial\theta} \right] \\[7pt]
&=& E_{s\ \sim\ d^{\pi_\theta}} \left[ \frac{\partial\pi_\theta(s)}{\partial\theta} \left. \frac{{\partial}Q^{\pi_\theta}(s,a)}{{\partial}a} \right|_{a=\pi_\theta(s)} \right] \\
\end{eqnarray}
第1式から、方策 \(\pi_\theta\) に基づいて行動選択する場合の期待報酬和を最大化するためには、行動価値関数 \(Q\) の勾配方向 \({\nabla_\theta}Q^{\pi_\theta}\) にパラメータ \(\theta\) を更新すればよいといえます。また、第2式から、方策関数 \(\pi_\theta\) と行動価値関数 \(Q^{\pi_\theta}\) を関数近似する必要があるといえます。
DDPGとは、前節で述べた方策関数 \(\pi_\theta\) と行動価値関数 \(Q^{\pi_\theta}\) を、パラメータ \(\theta\) でパラメタライズされた深層ニューラルネットワーク(Deep Neural Network; DNN)で関数近似した深層強化学習手法です。
DDPGのアルゴリズムを以下に示します。
Criticネットワーク \(Q(s,a|\theta^Q)\)とActorネットワーク \(\pi(s|\theta^\pi)\) の重み \(\theta^Q\)、\(\theta^\pi\) をランダムに初期化
ターゲットネットワーク \(Q’\)、\(\pi’\) の重みを初期化;\(\theta^{Q’}\leftarrow\theta^{Q},\ \theta^{\pi’}\leftarrow\theta^{\pi}\)
Replay Buffer \(R\) を初期化
エピソード \(1\) から \(M\) に対して繰り返し:
行動探索のためにランダム過程 \(\mathcal{N}\) を初期化
初期状態 \(s_1\) を受け取る
タイムステップ \(1\) から \(t\) に対して繰り返し:
現在の方策 \(\pi\) と探索ノイズ \(\mathcal{N}_t\) によって行動を選択;
\begin{eqnarray}
(a_t=\pi(s_t|\theta^\pi)+\mathcal{N}_t
\end{eqnarray}
行動 \(a_t\) をとり、次状態 \(s_{t+1}\) と報酬 \(r_t\) を観測
遷移情報\((s_t,a_t,s_{t+1},r_t)\)をReplay Buffer \(\mathcal{R}\)に保存
\(N\) 個の遷移情報\((s_i,a_i,s_{i+1},r_i)\)からなるランダムミニバッチを
Replay Buffer \(\mathcal{R}\) からサンプリング
目標値を計算;\(y_i=r_i+{\gamma}Q’\left(s_{i+1},\pi'(s_{i+1}|\theta^{\pi’})|\theta^{Q’}\right)\)
損失関数の最小化によってCriticを更新;
\begin{eqnarray}
L=\frac{1}{N}\sum_{i}\left(y_i-Q(s_i,a_i|\theta^{Q})\right)^2
\end{eqnarray}
方策勾配法を用いてActorの方策を更新;
\begin{eqnarray}
\nabla_{\theta^\pi}J \approx \frac{1}{N} \sum_{i} \nabla_a \left. Q(s,a|\theta^Q) \right|_{s=s_i, a=\pi(s_i)} \nabla_{\theta^\pi} \left. \pi(s|\theta^\pi) \right|_{s_i}
\end{eqnarray}
ターゲットネットワークを更新;
\begin{eqnarray}
\theta^{Q’} \leftarrow {\tau}\theta^{Q} + (1-\tau)\theta^{Q’} \\[5pt]
\theta^{\pi’} \leftarrow {\tau}\theta^{\pi} + (1-\tau)\theta^{\pi’}
\end{eqnarray}
DDPGは、Replay Bufferに保存した遷移情報をミニバッチとして取り出し、一度のパラメータ更新に用いるサンプルデータとしています。なお、各サンプルを独立同一分布(i.i.d.)とすることから、Replay Bufferは、機械学習の前提を満足させるために必要な手法であるといえます。
また、NNの学習不安定性を抑制するために、学習ネットワークとターゲットネットワークをそれぞれ用意し、Criticネットワークの教師データにあたる \(y_i\) の値を安定させます。
さらに、エージェントが選択する行動は、Actorネットワークの出力 \(\pi(s_t|\theta^\pi)\) にノイズ \(\mathcal{N}_t\) を加えた値となります。そのため、学習中の行動選択に用いられる方策(挙動方策;behavior policy)と、学習対象となる方策(推定方策;current policy)が異なり、off policy(方策オフ型)の強化学習手法に分類されます。
Lillicrap, Timothy P., Jonathan J. Hunt, Alexander Pritzel, Nicolas Heess, Tom Erez, Yuval Tassa, David Silver, and Daan Wierstra. “Continuous control with deep reinforcement learning.” arXiv preprint arXiv:1509.02971 (2015).