DQN
DQN 是指基于深度学习的 Q-learning 算法,主要结合了价值函数近似(Value Function Approximation)与神经网络技术,并采用了目标网络和经历回放的方法进行网络的训练。
在 Q-learning 中,我们使用表格来存储每个状态 s 下采取动作 a 获得的奖励,即状态-动作值函数 Q(s,a)Q(s,a)。然而,这种方法在状态量巨大甚至是连续的任务中,会遇到维度灾难问题,往往是不可行的。因此,DQN 采用了价值函数近似的表示方法。
举例来说,有一种评论家叫做 state value function(状态价值函数)。状态价值函数的意思就是说,假设演员叫做 \piπ,拿 \piπ 跟环境去做互动。假设 \piπ 看到了某一个状态 s,如果在玩 Atari 游戏的话,状态 s 是某一个画面,看到某一个画面的时候,接下来一直玩到游戏结束,期望的累积奖励有多大。所以 V^{\pi}V
π
是一个函数,这个函数输入一个状态,然后它会输出一个标量( scalar)。这个标量代表说,\piπ 这个演员看到状态 s 的时候,接下来预期到游戏结束的时候,它可以得到多大的值。
DQN的问题
DQN 其实存在一些问题,最大的问题是它不太容易处理连续动作。很多时候动作是连续的,比如我们玩雅达利的游戏,智能体只需要决定比如说上下左右,这种动作是离散的。那很多时候动作是连续的。举例来说假设智能体要做的事情是开自驾车,它要决定说它方向盘要左转几度, 右转几度,这是连续的。假设智能体是一个机器人,它身上有 50 个 关节,它的每一个动作就对应到它身上的这 50