强化学习--DQN

DQN


深度网络

一个神经网络能够将输入向量映射到输出向量,这个映射过程可以用下式表示。
在这里插入图片描述
某种意义上来说,神经网络就是一个函数,只不过不同于一般的数值函数,它的输入输出都是向量,并且拥有可以学习的参数
,这些参数可以通过梯度下降的方式来优化,从而使得神经网络能够逼近任意函数。类似于Q表,它也可以用来近似动作价值函数。
在这里插入图片描述

经验回放

强化学习是与环境实时交互得到样本然后进行训练的,这个样本一般包括当前的状态、当前动作、下一时刻的状态、奖励以及终止状态的标志(通常不呈现在公式中),也叫做一个状态转移。在算法中,每次交互得到一个样本之后,就立马拿去更新模型了。

这样的方式用在神经网络中会有一些问题,这跟梯度下降有关。首先每次用单个样本去迭代网络参数很容易导致训练的不稳定,从而影响模型的收敛,在深度学习基础的章节中我们也讲过小批量梯度下降是目前比较成熟的方式。其次,每次迭代的样本都是从环境中实时交互得到的,这样的样本是有关联的,而梯度下降法是基于一个假设的,即训练集中的样本是独立同分布的。

在深度学习中其实是没有这样的问题的。因为训练集是事先准备好的,每次迭代的样本都是从训练集中随机抽取的,因此每次迭代的样本都是独立同分布的。但是这样的假设在强化学习中是不成立的,因为每次迭代的样本都是从环境中实时交互得到的,因此每次迭代的样本都是相互关联的。

Q-learning算法训练的方式就是把每次通过与环境交互一次的样本直接喂入网络中训练。而在DQN中,我们会把每次与环境交互得到的样本都存储在一个经验回放中,然后每次从经验池中随机抽取一批样本来训练网络。

这样做的好处是,首先每次迭代的样本都是从经验池中随机抽取的,因此每次迭代的样本都是独立同分布的,这样就满足了梯度下降法的假设。其次,经验池中的样本是从环境中实时交互得到的,因此每次迭代的样本都是相互关联的,这样的方式相当于是把每次迭代的样本都进行了一个打乱的操作,这样也能够有效地避免训练的不稳定性。

目标网络

目标网络和当前网络结构都是相同的,都用于近似Q值,在实践中每隔若干步才把每步更新的当前网络参数复制给目标网络,这样做的好处是保证训练的稳定,避免Q值的估计发散。

在这里插入图片描述

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值