DQN的多种改进(1)

1.N-step DQN

N-step DQN的核心是将bellman方程展开,即 Q ( s t , a t ) = r t + γ r t + 1 + γ 2 m a x a ′ Q ( s t + 2 , a ′ ) Q(s_t,a_t) = r_t + \gamma r_{t+1} + \gamma^2 max_{a'}Q(s_{t+2},a') Q(st,at)=rt+γrt+1+γ2maxaQ(st+2,a)
显然,这个式子可以进一步的拓展。 但要注意的是,这里假设了 a t a_t at是趋近于最优动作,因此才能省略max

书中提到,该方法的优点在于可以加速Q网络的收敛。 原因在于, 由于一开始的随机数据,使得真正准确的Q值其实只存在于最后一个状态。 因为只有最后一个状态的Q值等于reward是准确的,其余的都掺杂有不准确的target_Q网络的预测值。 而准确的Q值会在第一次迭代后影响到倒数第二层, 继而在下一次迭代后影响到倒数第三层。。 而如果使用N-step DQN, 可以使得准确的Q值在第一次迭代时就影响到倒数前N层,因此起到了加速收敛的作用。但是N值不能取得太大,因为每一步的a并不是最优动作,N值太大时会使得Q的计算严重出错,因为省略了max。且由于DQN off-policy的性质,a的值很可能来源于old policy, 从而影响性能。

2.Double DQN (DDQN)

一句话概括DDQN的改变就是下面这个式子:

Q ( s t , a t ) = r t + γ m a x a ′ t a r g e t _ Q ( s ′ , a r g m a x a ′ Q ( s ′ , a ′ ) ) Q(s_t,a_t) = r_t + \gamma max_{a'}target\_Q(s', argmax_{a'}Q(s',a')) Q(st,at)=rt+γmaxatarget_Q(s,argmaxaQ(s,a))

比较一下DQN的式子:
Q ( s t , a t ) = r t + γ m a x a ′ ∈ A t a r g e t _ Q ( s ′ , a ′ ) Q(s_t,a_t) = r_t + \gamma max_{a'\in A}target\_Q(s', a') Q(st,at)=rt+γmaxaAtarget_Q(s,a)
可以发现,区别在于 DDQN通过Q网络来选取a’, 而不是完全使用target_Q。 结果显示,这样可以防止Q网络的对value的过度预测,加快收敛。

3. Noise Network

之前的 ϵ \epsilon ϵ-greedy 的探索方式其实并不好,而一种改进的策略就是在Network中加入noise。(可以认为该noise强迫网络进行探索,而由于noise也会加入后向传播的优化,所以也会逐渐收敛)。

  1. 第一种方式: 对所有全连接层的每个权重,都加上一个高斯分布的噪声项进行干扰
  2. 限制高斯变量只在一个有限的随机矩阵中取。

结论: 大大加速了收敛。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B417科研笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值