为什么DQN不需要important sampling?——强化学习

前言

分析这个问题要从重要性采样和target policy的本质出发,本文分为以下三步来介绍DQN为什么不需要重要性采样:重要性采样的目的、target policy和behavior policy的含义、DQN为什么不需要重要性采样。

1 重要性采样的目的

如果我们想计算 f ( x ) f(x) f(x)在分布 x − p ( x ) x-p(x) xp(x)下的期望 G p G_p Gp,那么使用蒙特卡罗的方式就是下式:
G p = ∑ x p ( x ) f ( x ) G_p = \sum_{x} p(x)f(x) Gp=xp(x)f(x)
但是现在的问题是我们无法在 p ( x ) p(x) p(x)下采样 x x x来计算 G G G,但是我们可以在另一个分布 x − q ( x ) x-q(x) xq(x)下采样到样本 x x x并计算 f ( s ) f(s) f(s)。为了利用 q ( x ) q(x) q(x)分布下采样的样本计算 G p G_p Gp,将 G p G_p Gp的公式转化为下式:
G p = ∑ x q ( x ) p ( x ) q ( x ) f ( x ) G_p = \sum_{x} q(x) \frac{p(x)}{q(x)} f(x) Gp=xq(x)q(x)p(x)f(x)
此时,样本 x x x是在 q ( x ) q(x) q(x)下采样得到的,根据 x x x再计算 p ( x ) p(x) p(x) q ( x ) q(x) q(x) f ( x ) f(x) f(x)即可得到 G p G_p Gp。其中 p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x)称为重要性采样系数

2 target policy和behavior policy的含义

在深度神经网络的框架下对target policy和behavior policy的解释如下:

target policy:在策略训练完成后,用来实际与环境进行交互测试的策略。

behavior policy:探索环境并采集训练数据的策略。

为了看的更清楚,我们在DQN中描述,DQN的框架如下:

这个框架只说明了DQN怎么训练,没说怎么测试。测试的时候使用最后一次保存的target Q-function与环境进行交互,而不是Q-function,这可以从easy-RL的DQN代码中看到:https://github.com/datawhalechina/easy-rl/tree/master/projects/codes/DQN

框架中的Q-function是behavior policy,target Q-function是target policy,在每一次迭代中,使用behavior policy收集数据 { s t , a t , r t , s t + 1 } \{s_t,a_t,r_t,s_{t+1}\} {st,at,rt,st+1}并放到buffer中,然后从buffer中采样数据,使用target policy生成学习标签 r i + max ⁡ a Q ^ ( s i + 1 , a ) r_i+\max_a \hat{Q}(s_{i+1},a) ri+maxaQ^(si+1,a),然后优化behavior policy。依次循环,直到达到最大epoch或误差小于阈值。

3 DQN为什么不需要重要性采样

从期望的角度对DQN的学习目标进行建模,即,使target policy在任一状态 s s s a a a下预测的 Q ( s , a ) Q(s,a) Q(s,a)越准越好,但是以谁作为训练目标呢?最准确的方法是通过蒙特卡罗的方式多次采样轨迹得到每个 Q ( s , a ) Q(s,a) Q(s,a),但耗时太长;为此提出使用时序差分(TD)的方式逐步优化,逐渐逼近真实的 Q Q Q
KaTeX parse error: Expected 'EOF', got '&' at position 23: …get}(s_t,a_t) &̲ = r_t + \gamm…
上式中, a t + 1 a_{t+1} at+1是由target policy决策生成。我们知道,target policy是完全的贪心策略(behavior policy是 ϵ \epsilon ϵ贪心策略),所以除 a r g m a x a t + 1 Q ( s t + 1 , a t + 1 ) argmax_{a_{t+1}} Q(s_{t+1},a_{t+1}) argmaxat+1Q(st+1,at+1)之外的a的 p ( a t + 1 ∣ s t + 1 ) p(a_{t+1}|s_{t+1}) p(at+1st+1)为0,所以,上式简化为:
Q t a r g e t ( s t , a t ) = r t + γ max ⁡ a t + 1 Q ( s t + 1 , a t + 1 ) Q_{target}(s_t,a_t) = r_t + \gamma \max_{a_{t+1}}Q(s_{t+1}, a_{t+1}) Qtarget(st,at)=rt+γat+1maxQ(st+1,at+1)
从这个公式再看,没有一项用到了期望,也就没有分布差异的问题,所以不需要重要性采样。

参考:

[1] 为什么DQN不需要off policy correction? - 俞扬的回答 - 知乎 https://www.zhihu.com/question/394866647/answer/1264965104

[2] easy-RL:https://github.com/datawhalechina/easy-rl/tree/master/projects/codes/DQN

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值