DQN

DQN

QLearning是用QTable来存储每个状态-动作对的Q值,如果状态和动作空间是离散且维度不高的,那么QTable这种存储形式是比较有效的;若状态和动作空间是高维连续的,那么就裂开了

Value Function Approximation

在上述情况下,既然我们无法用一个表格来精确存储与表示Q值,我们考虑用一个带参数的函数来近似地表示,即: 而这个带参数的函数,自然交给深度学习来做了

标签

深度学习是监督学习,需要有标签数据来计算损失函数,通过梯度下降和误差反向传播来更新神经网络的参数,那么在强化学习中如何获得标签呢?

在QLearning中,我们使用来更新,在此我们仍然使用这个思路,那么目标值就是:

输入 目标

Experience Replay

  • 深度学习需要大量带标签的训练数据
  • 强化学习从scalar reward进行学习,但是reward经常是sparse,noisy,delayed
  • 深度学习假设样本数据是独立同分布的,但是强化学习中采样的数据是强相关的

因此,DQN采用经验回放机制,将探索环境得到的数据存储到Replay Buffer中,以便后续从中随即及采样进行训练,好处如下:

  • 数据利用率高
  • 减少连续样本的相关性,从而减小方差

伪代码

img

Nature2015中对DQN进行了改进,提出了一个目标网络,每经过个回合的迭代训练,将的参数复制给目标网络,从而切断相关性

img