DQN(Deep Q-Network)简单理解

Q-Learning可以很好的解决迷宫问题,但这终究是个小问题,它的状态空间和动作空间都很小。而在实际的情况下,大部分问题都有巨大的状态空间或动作空间,建立Q表,内存是不允许的,而且数据量和时间开销也是个问题。

NIPS 2013 Playing Atari with Deep Reinforcement Learning

Nature 2015 Human-level Control through Deep Reinforcement Learning

我们可以使用神经网络来表示我们的 Q 函数,每层网络的权重就是对应的值函数,取 4 四帧游戏图像作为 state,输出每个 action 对应的 Q 值。如果我们想要执行 Q 值的更新,或者选择具有最高 Q 值的对应的 action,我们只需经过整个网络一次就能立刻获得任意动作对应的 Q 值。DQN的原始输入为连续的4帧图像,不只使用一帧画面是为了感知环境的动态性。
DQN(Deep Q-Network)简单理解_第1张图片
左图:简单的DQN模型,右图:DeepMind改进的DQN模型

假设一帧图像有84个像素点,那么四帧图像就有84844个像素。每一个像素点的取值是0-255可能,所有的可能性就有256^84844。
DQN(Deep Q-Network)简单理解_第2张图片
DeepMind使用的网络结构如下:
DQN(Deep Q-Network)简单理解_第3张图片
这是一个经典的带有三层卷积层的卷积神经网络,后面跟两个全连接层。注意:这里没有池化层,池化层会让你获得平移不变性,即网络对图像中对象的位置变得不敏感。这对于 ImageNet 这样的分类任务来说是有意义的,但游戏中位置对潜在的奖励至关重要,我们不希望丢失这些信息。

这个网络的输入是4个84 x 84 的灰度游戏屏幕,输出是每个可能的动作对应的 Q 值 (DeepMind 实验玩的游戏是 Atari,对应有 18 种动作)。这成为一个回归任务,可以用简单的平方误差损失进行优化: 在这里插入图片描述

对于给定的,前一算法的 Q表的更新规则应该做如下修改:

1.对当前状态 s 进行一次前馈,获得所有 action 预测的 Q 值。;

2.对下一个状态 s’ 进行一次前馈,计算整个网络最大的输出值在这里插入图片描述

3.为动作设置目标Q值 [公式] ;

4.通过反向传播更新权重。

DQN对Q-Learning的修改主要体现在三个方面:

(1)DQN利用深度卷积神经网络逼近值函数;

(2)DQN利用经验回放(experience replay)训练强化学习的学习过程;

(3)DQN独立设置了目标网络来单独处理时间差分算法中的TD偏差。

下面具体介绍:

(1)DQN利用深度卷积神经网络逼近值函数。此处的值函数对应着一组参数,在神经网络里参数是每层网络的权重,用θ表示,用公式表示的值函数Q(s,a;θ)。此时更新值函数时其实是更新参数θ,当神经网络确定时,θ就表示值函数。
DQN(Deep Q-Network)简单理解_第4张图片
第一个DQN模型

(2)经验回放的动机是:①深度神经网络作为有监督学习模型,要求数据满足独立同分布;②通过强化学习采集的数据之间存在着关联性,利用这些数据进行顺序训练,神经网络表现不稳定,而经验回放可以打破数据间的关联。

在强化学习过程中,智能体将数据存储到一个数据库中,再利用均匀随机采样的方法从数据库中抽取数据,然后利用抽取的数据训练神经网络(13年的NIPS中已提出)。

DQN(Deep Q-Network)简单理解_第5张图片
经验回放
(3)利用神经网络对值函数进行逼近时,值函数的更新步更新的是参数[公式],更新方法是梯度下降法。因此值函数更新实际上变成了监督学习的一次更新过程,其梯度下降法为:
DQN(Deep Q-Network)简单理解_第6张图片

DQN(Deep Q-Network)简单理解_第7张图片
我们称计算TD目标时所用的网络为TD网络。以往的神经网络逼近值函数时,计算TD目标的动作值函数所用的网络参数[公式],与梯度计算中要逼近的值函数所用的网络参数相同,这样就容易使得数据间存在关联性,训练不稳定。为了解决这个问题,DeepMind提出计算TD目标的网络表示为[公式];计算值函数逼近的网络表示为[公式];用于动作值函数逼近的网络每一步都更新,而用于计算TD目标的网络每个固定的步数更新一次。

因此值函数的更新变为:
在这里插入图片描述
DQN的伪代码
DQN(Deep Q-Network)简单理解_第8张图片
DQN伪代码

DQN(Deep Q-Network)简单理解_第9张图片
DQN(Deep Q-Network)简单理解_第10张图片
在这里插入图片描述

参考资料

1.https://zhuanlan.zhihu.com/p/46852675
2.https://zhuanlan.zhihu.com/p/35882937
3.https://zhuanlan.zhihu.com/p/21421729

你可能感兴趣的:(DQN(Deep Q-Network)简单理解)