深度强化学习DQN网络

DQN网络

DQN(Deep Q Networks)网络属于深度强化学习中的一种网络,它是深度学习与Q学习的结合,在传统的Q学习中,我们需要维护一张Q(s,a)表,在实际运用中,Q表往往是巨大的,并且当状态和行为的组合无穷时,则无法通过查表的方式获取最优的行为,因此我们需要一个深度学习模型来拟合Q(s,a)表,即能够帮助Q算法在对应的状态下找出最优的行为,即DQN网络,其网络结构如下图所示:
DQN网络结构示意图
其中,DNN网络的训练集为:<s, a, r, s’>,标签为:Reward,损失函数如下所示:
L i ( θ i ) = E s , a , r , s ′ D i [ ( r + γ ∗ m a x a ′ Q ( s ′ , a ′ , w i − ) − Q ( s , a , w i ) ) 2 ] L_{i}(\theta_{i}) = E_{s,a,r,s' D_{i}}[(r+\gamma*max_{a'}Q(s',a',w_{i}^{-})-Q(s,a,w_{i}))^{2}] Li(θi)=Es,a,r,sDi[(r+γmaxaQ(s,a,wi)Q(s,a,wi))2]
其中, r + γ ∗ m a x a ′ Q ( s ′ , a ′ , w i − ) r+\gamma*max_{a'}Q(s',a',w_{i}^{-}) r+γmaxaQ(s,a,wi) 表示当前得到的Reward加上下一状态所能获取的最大Q值,用该目标减去当前的Q值,作为误差值。

针对训练数据<s, a, r, s’>,个体每执行依次动作,都能够获取到一个训练样本,因此,在每执行依次动作后将<s, a, r, s’>放入经验池中。但是,由于状态之间都是连续的,因此依次放入的训练样本之间必然存在一定的关联,这样训练出来的神经网络容易产生过拟合现象,为了解决这个问题,我们从经验池中随机抽取少量的训练数据作为一个batch,这样既保证了训练样本时独立同分布的,又能够加快训练速率。

DQN网络的训练算法如下图所示:
DQN训练算法流程
从上面损失函数的公式 L i ( θ i ) L_{i}(\theta_{i}) Li(θi) 中可以看出有两个训练参数 w i − w_{i}^{-} wi w i w_{i} wi ,这表示了我们需要两个神经网络DQN1和DQN2,它们的结构完全一样,但是其中的权重、偏置参数不同,一个是 w i − w_{i}^{-} wi,另一个是 w i w_{i} wi,其中DQN1网络,即参数 w i − w_{i}^{-} wi所在的神经网络被称为Target Network网络。

之所以需要训练两个神经网络,是因为如果只有一个神经网络的话,那么随着参数 w i w_{i} wi的不断更新,其学习的目标 m a x a ′ Q ( s ′ , a ′ , w i − ) max_{a'}Q(s',a',w_{i}^{-}) maxaQ(s,a,wi) 也在不断更新,因此算法很难收敛,而当我们使用两个神经网络DQN1和DQN2,在训练时,我们固定住学习目标 m a x a ′ Q ( s ′ , a ′ , w i − ) max_{a'}Q(s',a',w_{i}^{-}) maxaQ(s,a,wi)中的参数 w i − w_{i}^{-} wi,这样另一个神经网络中的参数 w i w_{i} wi是针对一个固定的目标在更新,实现神经网络的训练。
其算法如下图所示:
DQN训练算法描述
以上就是深度强化学习中DQN网络的详细介绍,使用TD方法结合非线性的神经网络函数近似时可能不会收敛,但是DQN网络使用经理重现和固定的Q目标值,能够做到收敛而且算法具有很好的鲁棒性。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值