前言
对于Q-learning算法,有两点不足之处:
- 维度灾难;这是由于查找表存储和更新Q值时需要在离散状态空间开始强化学习,当状态的数量增大,这一问题将愈发难解;
- 有关状态空间离散化的粒度;较低的粒度将使得Q-learning泛化能力较弱,高粒度又将可能导致状态数量呈指数增长。
DQN应运而生,采用深度神经网络为非线性函数逼近,以表示高维连续状态空间中的Q值函数。, θ即参数化的神经网络。loss function可表示为“mean-squared TD error”:
并以P概念选择动作action,,P服从Boltzmann分布。其中,越高越接近于等概率,越低越接近于贪心策略,即选择Q(s,a)中对于值最大的动作a。 一般,会在初始时设置较大的,然后逐渐减小。
为了提高DQN的学习能力,在其迭代过程中加入了两种技术,即下述的经验回放和目标网络。
经验回放
其将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。
由于agent与环境交互得到的训练样本并不是独立同分布的,为了解决这一问题DQN引入了经验回放机制。利用一个回放以往经验信息的buffer,将过去的experience和目前的experience混合,降低了数据相关性。并且,经验回放还使得样本可重用,从而提高学习效率。
目标网络
在RL中,当采用非线性函数逼近Q值函数时,Q值的更新容易发生震荡,呈现出不稳定的学习行为。为此引入目标网络。
因为online network 的更新是基于对的计算。
目标网络相当于是 的copy,但在目标网络中,参数将在每隔X步都独立于online network进行更新。这就使得在训练过程中暂时固定Q值,从而学习过程更加稳定。
当采用以上两种机制后,DQN的Loss function可表示为: