为什么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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>