分散型DQNの論文を読む

ランニング30分 英語できず

(1) 分散型DQNの論文を読む

 「A Distributional Perspective on Reinforcement Learning

https://arxiv.org/abs/1707.06887

 この論文はDeepMindのDQNの派生モデルを統合したRainbowの中核を成すもので、DQNに初めて行動価値関数の分布を取り込んだモデルです。

 ロボット学のAbbeel達は方策\pi分布の最適化TRPOを提唱していますが、行動価値関数と方策との相違だけで殆ど似たモデルとなっています。やはり細かい制御をするには分布モデルが必要な様です。

 動機としては、簡単なPongゲームでも報酬が複雑な分布をしており、この報酬分布を旨く取り込んで強化学習の精度を向上させようとするものです。

f:id:mabonki0725:20171018183211p:plain

(1.1) 手法

 分布の行動価値関数は以下の(a) \sim (d)で作成します。

    ここでDQNは次の損失関数\mathcal{L}(\theta)を零にする様に\thetaを学習しますので

        \mathcal{L}(\theta) =[R+\gamma Q_{\theta-i}(s_{t+1},a_{t+1})-Q_\theta(s,a)]^2

 下図は細分化変数zを用いてQ \to P^\pi Zに置き換わったDQNといえます。

f:id:mabonki0725:20171018185434p:plain

 ここで

  zは分割したベクトルです

  P^\piは方策\piでの行動価値関数q(s,t|\theta-i)です

  \gamma \ \ Rは割引関数と報酬です

  \Phiは分布の整形作用素です(後述)

 まずzを報酬V_{min} \sim V_{max}N_{atoms}に分割してます。

 ここでV_{min} \ \ V_{max}は固定のパラメータです。

    報酬z_j毎に細分化した行動価値関数p_j(s,a)分布を算出します。

  p_j(s,t) = \Phi \hat{\mathcal{T}} z_\theta = \sum_{j=0}^{N_{atoms}}  \left(1 - \frac{|[\hat{\mathcal{T}}_{z_j}]_{V_{min}}^{V_{max}} - z_i|}{\Delta z} \right)_0^1 \cdot p_j(s_{t+1},\pi(s_{t+1}))

       z_\theta(s,a) = (p_1(s,a) \dots p_{N_{atoms}}(s,a))^T

       ここで 

   [\cdot]_a^ba \sim bまでの範囲を示します

           \pi(s) = argmax_a Q(s,a) 

   ZについてのDQNなので\thetaの損失関数\mathcal{L}_{s,a}(\theta)は前の方策z_{\theta_-1}(s,a)と現在のz_\theta(s,a)との差としています。

                 \mathcal{L}_{s,a}(\theta) = \mathcal{D}_{KL} [z_{\theta-1}(s,t) || z_{\theta}(s,a) ]

 

(1.2) 結果

 通常のDQNより早期に精度が向上していおり、分割数も多い方が精度が高いことを示しています。

f:id:mabonki0725:20171018195209p:plain