参考资料
[1] 深度强化学习系列 第一讲 DQN
本文主要是对该资料学习的笔记,并且加入了一些自己的想法,如有错误欢迎指出。
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)
其中:
- θ − \theta^- θ−为计算TD目标网络所用的参数,固定步数更新一次
- θ \theta θ为计算值函数逼近网络所用参数,每一步都会更新
- r + γ m a x a ′ Q ( s ′ , a ′ ; θ − ) r + \gamma max_{a'}Q(s',a';\theta^-) r+γmaxa