Optimization of DQN

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Optimization of DQN相关的知识,希望对你有一定的参考价值。

Optimization of DQN

1.Experience Replay


回顾TD算法。


1.1普通TD算法的缺点

我们直到每次更新网络参数 w w w 是通过一次transition,再使用后,我们便会丢弃该经验,这是一种浪费。


每次更新都是通过相邻两个状态转移,相邻两个状态具有强相关性,对实际动作的策略指导会存在问题。


1.2 介绍

Experience Replay 采用一个Replay Buffer 存储 n n n个transition。


buffer中的transition 保存的是最近的n个,类似LRU(?)


再更新参数时,我们每次从buffer中随机抽样一个或多个(对应multi step) transition,然后计算TD error,然后SGD更新 w w w


1.3 优点

1.减弱强相关性。

2.重复利用experience。

1.4 Prioritized Experience Replay

因为每个transition 重要性是不同的,比如右边的transition 就很难学习到,因此更重要。


可以考虑用TD error 近似优先级,因为越重要就越难学习到,因此error会 越大。


第一种方法将其抽样概率 p t p_t pt 正比TD error 加上 超参数 ϵ \\epsilon ϵ ,该参数是保证概率 > 0 >0 >0

第二种是反比按照TD error 排序后的排名。


为保证网络的均匀稳定,当使用优先经验回放时,学习率 α \\alpha α 应该调整,因为抽样概率不同。

设置函数 ( n p t ) − β (np_t)^-\\beta (npt)β 这样可以使高重要性的transitions 有低的学习率。


如果新收集的transition,设置 δ t \\delta_t δt 为最大,这样优先级最高,先更新其TD errror。每次我们对抽样的transitions的TD errror进行更新,使得误差更小。


2.Target Network and Double DQN


使用DQN 中的 Q Q Q函数得到 y t y_t yt 更新 Q Q Q,会导致自举问题。


2.1 高估的原因

DQN高估动作价值的原因有:

1.最大化,在进行TD 算法时计算TD target 会对 Q Q Q所有的 a a a max ⁡ \\max max

因此导致 y t y_t yt 大于真实值。

2.自举,用估计值来反向传播。


根据数学证明可知,在噪声均值为0的分布下得到的 Q Q Q 的最大值期望会更大。

因此会导致高估 q q q

而高估的 y t y_t yt 会进一步更新 Q Q Q 导致高估的影响不断增大。



两重影响。


2.2 高估有危害的原因

如果是均匀的高估,对于动作的选择没有影响,因为动作的选择是根据动作打分的相对大小,选取相对最大的进行执行。


但是如果高估不是均匀的,则可能会导致选择错误的动作。


因为 ( s , a ) (s,a) (s,a) 在replay buffer中出现的频率不是均匀的,出现次数越多, Q ( s , a ; w ) Q(s,a;w) Q(s,a;w)的高估就越明显。


2.3 Target Network

用一个DQN 控制agent 执行动作和收集experience,再使用一个DQN Q ( s , a ; w − ) Q(s,a;w^-) Q(s,a;w) 计算TD target。


更新target network 有两种方法:

1.使用DQN之前的 w w w更新。

2.使用两者的加权平均。


相比naive update,target network 减缓了自举带来的高估。


2.4 Double DQN

这是target network 更新的方法,使用target network选择 a ∗ a^* a,用target network更新 y t y_t yt。但是不能完全消除高估。


Double DQN类似于naive update 和 target network 的一种优化。

它使用DQN来选择 a ∗ a^* a ,然后用target network 计算 y t y_t yt ,将selection 与 evaluation 分隔开。

使用Double DQN的 Q ( s t + 1 , a ∗ , ; w − ) ≤ m a x a Q ( s t + 1 , a ; w − ) Q(s_t+1,a^*,;w^-)\\le max_aQ(s_t+1,a;w^-) Q(st+1,a,;w)maxaQ(st+1,a;w)
因此target network 使用自己的 Q Q Q计算动作 a ∗ a^* a,选取的是最大的。

而Double DQN不是target network最大的 a ∗ a^* a,而是DQN里的最优的。

2.5 Summary


从该图可以看出,结合趋于平衡往往是最优的。

3.Dueling Network

3.1 相关定义

回顾几个定义。

这里定义最优优势函数 A ∗ A^* A Q ∗ Q^* Q V ∗ V^* V 的差值。


定理1,显然最优的 V V V 是取得所有 a a a 后的 Q ∗ Q^* Q


因此可以得到 m a x a A ∗ ( s , a ) = 0 max_aA^*(s,a)=0 maxaA(s,a)=0


因此可以这样表示 Q ∗ Q^* Q


我们采用一个神经网络近似 A ∗ A^* A


一个神经网络近似 V ∗ V^* V


3.2 网络模型

因此可以用这两个网络近似 Q ∗ Q^* Q



因为两个网络的卷积层操作相同,所以可以公用。

该网络同样可以使用experience replay、Double DQN,Multi-step TD 这些trick。


3.3 使用max-0常量的必要性


显然若 V ′ , A ′ V',A' V,A的变化和最后为0,其 Q Q Q 也不会影响。

但是会导致对 V V V A A A的网络训练出现问题。

而引用max后就不会出现评价的偏差。

在实际应用中采用mean效果更优。


V , A V,A V,A 两者是一起训练的,参数看成一个整体 w = ( w V , w A ) w=(w^V,w^A) w=(wV,wA) ,训练方式与DQN类似。


以上是关于Optimization of DQN的主要内容,如果未能解决你的问题,请参考以下文章

6. Double DQNPrioritized DQNDueling DQN

Note of Numerical Optimization Ch.3

An overview of gradient descent optimization algorithms

(转) An overview of gradient descent optimization algorithms

A review of gradient descent optimization methods

Learning Roadmap of Deep Reinforcement Learning