Deep Q Network

Deep Q Network

強化学習の目的

変数の定義

  • $\mathcal{S}$ : 状態の集合
  • $\mathcal{A}$ : 行動の集合
  • $P_T(s _ {t+1} | s_t, a_t)$ : 状態$s_t$で行動$a_t$をしたときにに,状態$s_{t+1}$に遷移する確率を出力する関数(状態遷移確率関数)
  • $\pi(a_t | s_t)$ : 状態$s_t$時の行動$a_t$を選択する確率を出力する関数(政策関数)
  • $R(s_t, a_t, s_{t+1})$ : 報酬関数
  • $\gamma$ : 割引率

目的関数

$$ \mathbb{E}[ \Sigma^{\infty}_{t=0} \gamma^{t} R(s_t, a_t, s _ {t+1}) ], \forall s_0 \in \mathcal{S}, \forall a_0 \in \mathcal{A} $$

$$ a_t \stackrel{iid}{\sim} \pi(a_t | s_t) $$ $$ s _ {t+1} \stackrel{iid}{\sim} P_T(s _ {t+1} | s_t,a_t) $$ $$ s_t \in \mathcal{S}, a_t \in \mathcal{A} $$ $$ \gamma \in (0, 1] $$

最適政策関数

最適政策関数$\pi^*$は以下で表される

$$ \pi^*(a|s) = \argmax_\pi \mathbb{E}[ \Sigma^{\infty}_{t=0} \gamma^{t} R(s_t, a_t, s _ {t+1}) ] $$

また、政策$\pi$で得られる報酬の総和を収益(Return)という $$ C_t = \mathbb{E}_\pi[ \Sigma^\infty _ {\tau=0} \gamma^\tau R(s _{t+\tau}, a _{t+\tau}, s _ {t+\tau+1}) ] $$ $ r_t = R(s_t, a_t, s _{t+1}) $ とすると,$C_t$は以下のような再帰構造を持つ

$$ \begin{aligned} C_t &= r_t + \mathbb{E}_\pi[ \Sigma^\infty _ {\tau=1} \gamma^\tau R(s _{t+\tau}, a _{t+\tau}, s _ {t+\tau+1}) ] \\ &= r_t + \gamma C _ {t+1} \end{aligned} $$

状態価値関数

$$ \begin{aligned} V^\pi(s) &= \mathbb{E}_{\pi} [ r_0 + \gamma C_1 | s_0 = s ] \\ &= \displaystyle\sum _{a \in \mathcal{A}} \pi(a | s) \displaystyle\sum _{s^{\prime} \in S} P_T(s^{\prime} | s, a)R(s, a, s^{\prime}) + \gamma \displaystyle\sum _{a \in \mathcal{A}} \pi(a | s) \displaystyle\sum _{s^{\prime} \in S}P_T(s^{\prime} | s, a)V^\pi(s^{\prime}) \\ &= \displaystyle\sum _{a \in \mathcal{A}} \pi(a | s) \displaystyle\sum _{s^{\prime} \in S} P_T(s^{\prime} | s, a)(R(s, a, s^{\prime}) + \gamma V^\pi(s^{\prime}) ) \end{aligned} $$

状態行動価値関数

$$ \begin{aligned} Q^\pi(s,a) &= \mathbb{E}_{\pi} [ r_0 + \gamma C_1 | s_0 = s, a_0=a ] \\ &= \displaystyle\sum _{s^{\prime} \in S} P_T(s^{\prime} | s, a)R(s, a, s^{\prime}) + \gamma \displaystyle\sum _{a^{\prime} \in \mathcal{A}} \displaystyle\sum _{s^{\prime} \in S}P_T(s^{\prime} | s, a)\pi(a^{\prime} | s^{\prime})Q^\pi(s^{\prime},a^{\prime}) \\ &= \displaystyle\sum _{s^{\prime} \in S} P_T(s^{\prime} | s, a)(R(s, a, s^{\prime}) + \gamma \displaystyle\sum _{a^{\prime} \in \mathcal{A}} \pi(a^{\prime} | s^{\prime})Q^\pi(s^{\prime},a^{\prime})) \end{aligned} $$

状態価値関数と状態行動価値関数の関係

$$ V^\pi(s) = \mathbb{E} _{\pi(a | s)} [ Q^\pi(s,a)] $$

$$ Q^\pi(s,a) = \mathbb{E} _ {P_T(s^{\prime} | s,a)} [ V^\pi(s^{\prime}) ] $$

動的計画法の問題点

状態遷移確率関数(モデル)$P_T(s _ {t+1} | s_t, a_t)$ が既知なら動的計画法で収益最大化問題が解ける.
しかし,モデルが未知の場合はモデルフリーな手法が必要となる.
また,モデルが既知でも状態空間と行動空間が大きい場合は,計算量が膨大になってしまう.

Q-learning

  • 試行錯誤,逐次更新を繰り返すことで,行動価値を直接推定・最適化する(モデルフリー)

  • 下式1行目の$r _{t+1} + \gamma \max _{a^\prime \in \mathcal{A}}Q(s _{t+1},a^\prime )$ が試行錯誤で得られた推定価値

  • $\alpha$ : 学習率

$$ \begin{aligned} Q(s_t, a_t) &\leftarrow (1 - \alpha)Q(s_t,a_t) + \alpha ( r _{t+1} + \gamma \max _{a^\prime \in \mathcal{A}}Q(s _{t+1},a^\prime )) \\ &= Q(s_t,a_t) + \alpha ( r _{t+1} + \gamma \max _{a^\prime \in \mathcal{A}}Q(s _{t+1},a^\prime) - Q(s_t, a_t)) \end{aligned} $$

  • Off-policy(政策に依存しない)であるため,任意のpolicyに従いながらQ値の更新が可能.

epsilon greedy policy

  • 確率$\epsilon$で$\mathcal{A}$の中からランダムで行動選択
  • 確率$1-\epsilon$で行動価値最大の行動を取る
  • 学習が進むにつれて,$\epsilon$を0に近づけることで,決定的にしていく

$$ a^* = \argmax_aQ^\pi(s,a) $$

$$ \pi^\prime(a|s) = \begin{cases} 1-\epsilon + \frac{\epsilon}{| \mathcal{A}|} & \text{ if } a = a^* \\ \frac{\epsilon}{| \mathcal{A}|} & \text{ otherwise } \end{cases} $$

softmax policy (Boltzman policy)

  • 温度パラメータ$T$によってランダム性を調整する
  • 学習が進むにつれて,$T$を0に近づけることで,決定的にしていく

$$ \pi^\prime(a|s) = \frac{\exp(Q^\pi(s,a)/T)}{\sum_{a^\prime \in \mathcal{A}}\exp(Q^\pi(s,a)/T)} $$

Avatar
中塚 俊介
R&D Engineer

My research interests are in computer vision, especially in anomaly detection and XAI.

comments powered by Disqus