参考资料
[1] 深度强化学习系列 第一讲 DQN
本文主要是对该资料学习的笔记,并且加入了一些自己的想法,如有错误欢迎指出。
DQN算法在Q-Learning算法上改进而来,具体改进三点:
利用卷积神经网络逼近行为值函数
该逼近方法属于非线性逼近。此处的值函数对应一组参数,为神经网络中每层网络的权重,用θ表示。此时值函数记为: Q ( s , a ; θ ) Q(s,a;\theta) Q(s,a;θ)。DQN所用神经网络为三个卷积层加两个全连接层。
利用经验回放训练强化学习过程
DQN中Agent将数据存储到一个数据库中,再利用均匀随机采样从数据库中抽取数据,然后训练神经网络。这一过程可以打破数据间的相关性,克服神经网络不稳定的问题。
独立设置目标网络处理时间差分法中的TD偏差
对值函数逼近时DQN采用卷积神经网络,用梯度下降法更新。
值函数的更新公式为:
θ t + 1 = θ t + α { r + γ m a x a ′ Q ( s ′ , a ′ ; θ − ) − Q ( s , a ; θ ) } ∇ Q ( s , a ; θ ) (1) \theta_{t+1} = \theta{t} + \alpha\lbrace r + \gamma max_{a'}Q(s',a';\theta^-)-Q(s,a;\theta) \rbrace \nabla Q(s,a;\theta) \tag{1} θt+1=θt+α{r+γmaxa′Q(s′,a′;θ−)−Q(s,a;θ)}∇Q(s,a;θ)(1)
其中:
TD目标网络与值函数逼近网络不同参数的原因:采用相同参数容易导致数据之间存在相关性,从而使训练不稳定。(这里虽然参数不同,但网络模型应该是相同的)
疑问:
该算法描述处理的是图像吗?x代表image
其中:
DQN的固有缺陷:非均匀过估计问题,即估计得到的值函数大于真实的值函数,且值函数每一点的过估计量是非均匀的,因此会影响策略选择。
如上述(1)式所示,DQN的TD目标为: r + γ m a x a ′ Q ( s ′ , a ′ ; θ − ) r + \gamma max_{a'}Q(s',a';\theta^-) r+γmaxa′Q(s′,a′;θ−)
其中:
其中存在的问题:选择a*、计算Q的函数其参数均为 θ − \theta^- θ−,这也是导致非均匀过估计的来源。
Double DQN的解决方案为:动作选择和动作评估采用不同值函数实现。
Double DQN的TD目标为: Y t D o u b l e Q = R t + 1 + γ Q ( S t + , a r g m a x a Q ( S t + 1 , a ; θ t ) ; θ t ′ ) Y^{DoubleQ}_t = R_{t+1} + \gamma Q (S_{t+},argmax_a Q(S_{t+1},a;\theta_t);\theta_t ') YtDoubleQ=Rt+1+γQ(St+,argmaxaQ(St+1,a;θt);θt′)
其中:
经验回放时采取的均匀抽样并不能高效利用数据,因为不同数据的学习效率不同。一般认为具有较大TD偏差的数据对于参数更新量越大,学习效率越高。
因此,需要定义第i个样本处的采样概率:
P ( i ) = p i a ∑ k p k a P(i) = \frac{p^a_i}{\sum_k p_k^a} P(i)=∑kpkapia
其中:
其权重需要通过特定方式计算得到,参考采用优先回放的DDQN算法。
需要注意的是,采取优先回放概率采样时,动作-值函数为有偏估计,为校正该偏差,定义重要性采样系数:
ω i = ( 1 N ⋅ 1 P ( i ) ) β \omega_i = (\frac{1}{N} \cdot \frac{1}{P(i)})^{\beta} ωi=(N1⋅P(i)1)β
其中:
其中: