DQNは、Q Network、Target Networkの2つのネットワークを用います。
この2つのネットワークの構造は同一です。パラメータは異なります。
Q NetworkとTarget Networkの役割
Target Network
DQNでは、Target Networkを行動選択と
Experience ReplayのTD誤差を計算する時に用います。
(赤の部分)
$$
\begin{eqnarray}
TDError = r + \gamma \max \color{red}{Q(s’;\theta^{-})} – Q(s,a;\theta)
\end{eqnarray}
$$
この2つのネットワークを用いることで、Q学習の課題の1つである、状態の過大評価を緩和します。
DQNでは、Q値を更新する際に遷移先$s’$の状態の最大価値$maxQ(s’)$を用います。
そのため、ある状態を過剰に評価してしまった場合に、その状態の評価だけでなく、 他の状態の評価にも大きく影響を与え、学習が不安定になってしまいます。 (行動価値は伝搬してくため)
任意のインターバルで、Q NetworkのパラメータをTarget Networkに反映していきます。
これは、Q Learningの過大評価という課題を緩和するために重要なります。
Q Network
Q Networkは適宜、Experience Replayによって学習していきます。
Q NetworkのパラメータをTarget Networkに反映
そして、適宜学習したQ NetworkのパラメータをTarget Networkに反映していきます。
パラメータの反映方法には大きくわけて2つあって、
1つはHard Update もう1つはSoft Update になります。
Hard Update
Hard Updateでは、定期的にQ NetworkのパラメータをTarget Networkにコピーします。
Soft Update
Soft Update では、Q Networkを更新する度に少しずつずづQ Networkのパラメータを反映させていきます。
$$
\begin{eqnarray}
\theta ^{-} \leftarrow (1-\alpha)\theta ^{-} + \alpha \theta
\end{eqnarray}
$$
コメント