强化学习无效动作的掩码处理
原文链接:http://arxiv.org/abs/2006.14171
简介
这篇文章证明了无效动作掩蔽可以看作是在计算动作概率分布时应用状态相关的可微函数来产生行为策略。接下来,设计了实验来比较无效动作掩饰和无效动作惩罚的性能。
无效动作惩罚:这是一种常见的方法,对无效动作给予负奖励,以便Agent学习通过不执行任何无效动作来最大化奖励。
我们的经验表明,当无效行动的空间扩大时,无效行动掩蔽的规模很大,Agent解决了我们想要的任务,而无效行动惩罚甚至难以探索第一个奖励。
然后,设计了实验来回答两个问题:
- 一旦用掩码训练Agent,去除无效操作掩码会发生什么?
- 当我们通过从屏蔽的动作概率分布中采样动作,但使用未屏蔽的动作概率分布来更新策略梯度时,当我们单纯地实施无效动作屏蔽时,Agent的性能如何?
背景
MDP过程【马尔科夫决策过程】
(
S
,
A
,
P
,
ρ
0
,
r
,
γ
,
T
)
(S,A,P,\rho_{0},r,\gamma,T)
(S,A,P,ρ0,r,γ,T)
符号 | 含义 |
---|---|
S S S | 状态空间 |
A A A | 离散动作空间 |
P P P | 状态转移概率矩阵 |
ρ 0 \rho_{0} ρ0 | 初始状态分布 |
r r r | 奖励函数 |
γ \gamma γ | 衰减因子 |
T T T | 过程的最大长度 |
π θ \pi_{\theta} πθ | 策略,给定状态下的动作概率分布 |
优化目标就是最大化下面的式子:
J
=
E
τ
[
∑
t
=
0
T
−
1
γ
t
r
t
]
J=\mathbb{E}_{\tau}\left[\sum_{t=0}^{T-1}\gamma^tr_t\right]
J=Eτ[t=0∑T−1γtrt]
τ
\tau
τ:经验数据/交互记录,
(
s
0
,
a
0
,
r
0
,
…
,
s
T
−
1
,
a
T
−
1
,
r
T
−
1
)
(s_0,a_0,r_0,\ldots,s_{T-1},a_{T-1},r_{T-1})
(s0,a0,r0,…,sT−1,aT−1,rT−1)
也就是找到一个
θ
\theta
θ,使之对应的策略梯度
∇
θ
J
\nabla_\theta J
∇θJ最大,也就是梯度上升,让奖励最大化!
θ
=
θ
+
∇
θ
J
\theta=\theta+\nabla_\theta J
θ=θ+∇θJ
以下是早期对于策略梯度的估计:
∇
θ
J
=
E
τ
∼
π
θ
[
∑
t
=
0
T
−
1
∇
θ
log
π
θ
(
a
t
∣
s
t
)
G
t
]
G
t
=
∑
k
=
0
∞
γ
k
r
t
+
k
\nabla_{\theta}J=\mathbb{E}_{\tau\sim\pi_{\theta}}\left[\sum_{t=0}^{T-1}\nabla_{\theta}\log\pi_{\theta}(a_{t}|s_{t})G_{t}\right] \\ G_{t}=\sum_{k=0}^{\infty}\gamma^{k}r_{t+k}
∇θJ=Eτ∼πθ[t=0∑T−1∇θlogπθ(at∣st)Gt]Gt=k=0∑∞γkrt+k
推不出来了!!!啊啊啊啊啊啊啊啊,感觉论文这一块写的很奇怪,可能是我水平不够,没看明白这个论文的公式,以下是个人推导过程。
推导如下:参考强化学习(九)–Policy Gradient推导过程 - 知乎 (zhihu.com)
针对公式(2),可以将 E τ [ ⋅ ] \mathbb{E}_{\tau}[·] Eτ[⋅]理解为对交互记录的期望,因为策略的随机性会导致采样出不同的交互记录!理论上最大化的也要是其对应的期望值!
因此可以把式子(2)换为如下形式:
J
(
θ
)
=
E
τ
[
∑
t
=
0
T
−
1
γ
t
r
t
]
=
∑
τ
P
(
τ
;
θ
)
R
(
τ
)
J\left(\theta\right)=\mathbb{E}_{\tau}\left[\sum_{t=0}^{T-1}\gamma^tr_t\right]=\sum_{\tau}{P\left(\tau ;\theta\right)R\left(\tau\right)}
J(θ)=Eτ[t=0∑T−1γtrt]=τ∑P(τ;θ)R(τ)
P
(
τ
;
θ
)
P\left(\tau ;\theta\right)
P(τ;θ):表示交互记录
τ
\tau
τ出现的概率
R ( τ ) R\left(\tau\right) R(τ):表示该条交互记录的奖励,也就是 ∑ t = 0 T − 1 γ t r t \sum_{t=0}^{T-1}\gamma^tr_t ∑t=0T−1γtrt
对
J
(
θ
)
J(\theta)
J(θ),进行求导:
∇
θ
J
(
θ
)
=
∇
θ
∑
τ
P
(
τ
;
θ
)
R
(
τ
)
=
∑
τ
∇
θ
P
(
τ
;
θ
)
R
(
τ
)
=
∑
τ
P
(
τ
;
θ
)
P
(
τ
;
θ
)
∇
θ
P
(
τ
;
θ
)
R
(
τ
)
=
∑
τ
P
(
τ
;
θ
)
∇
θ
P
(
τ
;
θ
)
P
(
τ
;
θ
)
R
(
τ
)
=
∑
τ
P
(
τ
;
θ
)
∇
θ
log
P
(
τ
;
θ
)
R
(
τ
)
\begin{aligned} &\nabla_\theta J\left(\theta\right)=\nabla_\theta\sum_{\tau}P\left(\tau;\theta\right)R\left(\tau\right) \\ &=\sum_\tau\nabla_\theta P\left(\tau;\theta\right)R\left(\tau\right) \\ &=\sum_\tau\frac{P(\tau;\theta)}{P(\tau;\theta)}\nabla_\theta P\left(\tau;\theta\right)R\left(\tau\right) \\ &=\sum_{\tau}P\left(\tau;\theta\right)\frac{\nabla_{\theta}P(\tau;\theta)}{P(\tau;\theta)}R(\tau) \\ &=\sum_{\tau}P\left(\tau;\theta\right)\nabla_{\theta}\log P\left(\tau;\theta\right)R\left(\tau\right) \end{aligned}
∇θJ(θ)=∇θτ∑P(τ;θ)R(τ)=τ∑∇θP(τ;θ)R(τ)=τ∑P(τ;θ)P(τ;θ)∇θP(τ;θ)R(τ)=τ∑P(τ;θ)P(τ;θ)∇θP(τ;θ)R(τ)=τ∑P(τ;θ)∇θlogP(τ;θ)R(τ)
上述推导的最后一步的详细解释如下【
l
o
g
log
log没有底数的时候就是
l
n
ln
ln】:
[
l
o
g
a
x
]
′
=
1
x
l
n
a
[
l
o
g
(
u
)
]
′
=
1
u
u
′
∇
θ
log
P
(
τ
;
θ
)
=
∇
θ
P
(
τ
;
θ
)
P
(
τ
;
θ
)
[log_ax]^{^{\prime}}=\frac1{xlna} \\ [log(u)]^{^{\prime}}=\frac1uu^{^{\prime}} \\ \nabla_{\theta}\log P\left(\tau;\theta\right)=\frac{\nabla_{\theta}P\left(\tau;\theta\right)}{P\left(\tau;\theta\right)}
[logax]′=xlna1[log(u)]′=u1u′∇θlogP(τ;θ)=P(τ;θ)∇θP(τ;θ)
即现在要对
∇
θ
J
=
∑
τ
P
(
τ
;
θ
)
∇
θ
log
P
(
τ
;
θ
)
R
(
τ
)
\nabla_\theta J=\sum_{\tau}P\left(\tau;\theta\right)\nabla_{\theta}\log P\left(\tau;\theta\right)R\left(\tau\right)
∇θJ=∑τP(τ;θ)∇θlogP(τ;θ)R(τ)进行下一步推导,先求解
∇
θ
log
P
(
τ
;
θ
)
\nabla_{\theta}\log P\left(\tau;\theta\right)
∇θlogP(τ;θ)
设某一条交互路径的概率可以写为:
P
(
τ
(
i
)
;
θ
)
=
∏
t
=
0
T
−
1
P
(
s
t
+
1
(
i
)
∣
s
t
(
i
)
,
a
t
(
i
)
)
⋅
π
θ
(
a
t
(
i
)
∣
s
t
(
i
)
)
P\left(\tau^{(i)};\theta\right)=\prod_{t=0}^{T-1}P\left(s_{t+1}^{(i)}|s_{t}^{(i)},a_{t}^{(i)}\right)\cdot\pi_{\theta}\left(a_{t}^{(i)}|s_{t}^{(i)}\right)
P(τ(i);θ)=t=0∏T−1P(st+1(i)∣st(i),at(i))⋅πθ(at(i)∣st(i))
其求导如下,其中第二行到第三行是因为
P
(
s
t
+
1
(
i
)
∣
s
t
(
i
)
,
u
t
(
i
)
)
P\left(s_{t+1}^{(i)}|s_t^{(i)},u_t^{(i)}\right)
P(st+1(i)∣st(i),ut(i))中无参数
θ
\theta
θ,因此可在求导过程中消掉:
∇
θ
log
P
(
τ
(
i
)
;
θ
)
=
∇
θ
log
[
∏
t
=
0
T
−
1
P
(
s
t
+
1
(
i
)
∣
s
t
(
i
)
,
a
t
(
i
)
)
⋅
π
θ
(
a
t
(
i
)
∣
s
t
(
i
)
)
]
=
∇
θ
[
∑
t
=
0
T
−
1
log
P
(
s
t
+
1
(
i
)
∣
s
t
(
i
)
,
a
t
(
i
)
)
+
∑
t
=
0
T
log
π
θ
(
a
t
(
i
)
∣
s
t
(
i
)
)
]
=
∇
θ
[
∑
t
=
0
T
−
1
log
π
θ
(
a
t
(
i
)
∣
s
t
(
i
)
)
]
=
∑
t
=
0
T
−
1
∇
θ
log
π
θ
(
a
t
(
i
)
∣
s
t
(
i
)
)
\begin{aligned} &\nabla_{\theta}\log P\left(\tau^{(i)};\theta\right)=\nabla_{\theta}\log\left[\prod_{t=0}^{T-1}P\left(s_{t+1}^{(i)}|s_{t}^{(i)},a_{t}^{(i)}\right)\cdot\pi_{\theta}\left(a_{t}^{(i)}|s_{t}^{(i)}\right)\right] \\ &=\nabla_\theta\left[\sum_{t=0}^{T-1}\log P\left(s_{t+1}^{(i)}|s_t^{(i)},a_t^{(i)}\right)+\sum_{t=0}^T\log\pi_\theta\left(a_t^{(i)}|s_t^{(i)}\right)\right] \\ &=\nabla_\theta\left[\sum_{t=0}^{T-1}\log\pi_\theta\left(a_t^{(i)}|s_t^{(i)}\right)\right] \\ &=\sum_{t=0}^{T-1}\nabla_\theta\log\pi_\theta\left(a_t^{(i)}|s_t^{(i)}\right) \end{aligned}
∇θlogP(τ(i);θ)=∇θlog[t=0∏T−1P(st+1(i)∣st(i),at(i))⋅πθ(at(i)∣st(i))]=∇θ[t=0∑T−1logP(st+1(i)∣st(i),at(i))+t=0∑Tlogπθ(at(i)∣st(i))]=∇θ[t=0∑T−1logπθ(at(i)∣st(i))]=t=0∑T−1∇θlogπθ(at(i)∣st(i))
故策略梯度的式子可以写为:
∇
θ
J
=
E
τ
[
∑
t
=
0
T
−
1
∇
θ
log
π
θ
(
a
t
(
i
)
∣
s
t
(
i
)
)
∗
∑
t
=
0
T
−
1
γ
t
r
t
]
\nabla_\theta J=\mathbb{E}_{\tau}[\sum_{t=0}^{T-1}\nabla_\theta\log\pi_\theta\left(a_t^{(i)}|s_t^{(i)}\right)* \sum_{t=0}^{T-1}\gamma^tr_t]
∇θJ=Eτ[t=0∑T−1∇θlogπθ(at(i)∣st(i))∗t=0∑T−1γtrt]
无效动作的掩码
假设一个MDP过程为:
状态空间 S : { s 0 , s 1 } S:\{s_0,s_1\} S:{s0,s1}
动作空间 A : { a 0 , a 1 , a 2 , a 3 } A:\{a_0,a_1,a_2,a_3\} A:{a0,a1,a2,a3}
此时策略 π θ \pi_\theta πθ由向量 θ \theta θ来参数化, θ = [ l 1 , l 2 , l 3 , l 4 ] \theta = [l_1,l_2,l_3,l_4] θ=[l1,l2,l3,l4]
假设初始 θ = [ 1 , 1 , 1 , 1 ] \theta=[1,1,1,1] θ=[1,1,1,1],故各个动作的采样概率 π θ = [ 0.25 , 0.25 , 0.25 , 0.25 ] \pi_\theta=[0.25,0.25,0.25,0.25] πθ=[0.25,0.25,0.25,0.25]
且无论为为什么动作,都可以让智能体从初始状态
s
0
s_0
s0转移到末态
s
1
s_1
s1,并得到1的奖励
π
θ
(
⋅
∣
s
0
)
=
[
π
θ
(
a
0
∣
s
0
)
,
π
θ
(
a
1
∣
s
0
)
,
π
θ
(
a
2
∣
s
0
)
,
π
θ
(
a
3
∣
s
0
)
]
=
s
o
f
t
m
a
x
(
[
l
0
,
l
1
,
l
2
,
l
3
]
)
=
[
0.25
,
0.25
,
0.25
,
0.25
]
\begin{aligned} \pi_{\theta}(\cdot|s_{0})& =[\pi_{\theta}(a_{0}|s_{0}),\pi_{\theta}(a_{1}|s_{0}),\pi_{\theta}(a_{2}|s_{0}),\pi_{\theta}(a_{3}|s_{0})] \\ &=\mathrm{softmax}([l_{0},l_{1},l_{2},l_{3}]) \\ &=[0.25,0.25,0.25,0.25] \end{aligned}
πθ(⋅∣s0)=[πθ(a0∣s0),πθ(a1∣s0),πθ(a2∣s0),πθ(a3∣s0)]=softmax([l0,l1,l2,l3])=[0.25,0.25,0.25,0.25]
其中
π
θ
(
a
i
∣
s
0
)
=
exp
(
l
i
)
∑
j
exp
(
l
j
)
\pi_\theta(a_i|s_0)=\frac{\exp(l_i)}{\sum_j\exp(l_j)}
πθ(ai∣s0)=∑jexp(lj)exp(li)
根据策略梯度的推导结果,可以得知,该交互记录的策略梯度为:
∇
θ
J
=
E
τ
∼
π
θ
[
∑
t
=
0
T
−
1
∇
θ
log
π
θ
(
a
t
∣
s
t
)
G
t
]
\nabla_{\theta}J=\mathbb{E}_{\tau\sim\pi_{\theta}}\left[\sum_{t=0}^{T-1}\nabla_{\theta}\log\pi_{\theta}(a_{t}|s_{t})G_{t}\right]
∇θJ=Eτ∼πθ[t=0∑T−1∇θlogπθ(at∣st)Gt]
其中交互记录只有一条,假设采样的结果是动作
a
0
a_0
a0,奖励大小为1
因此:
∇
θ
J
=
E
τ
∼
π
θ
[
∑
t
=
0
T
−
1
∇
θ
log
π
θ
(
a
t
∣
s
t
)
G
t
]
=
∇
θ
log
π
θ
(
a
0
∣
s
0
)
G
0
\begin{aligned} \nabla_{\theta}J&=\mathbb{E}_{\tau\sim\pi_{\theta}}\left[\sum_{t=0}^{T-1}\nabla_{\theta}\log\pi_{\theta}(a_{t}|s_{t})G_{t}\right]\\ &=\nabla_{\theta}\log\pi_{\theta}(a_{0}|s_{0})G_{0} \end{aligned}
∇θJ=Eτ∼πθ[t=0∑T−1∇θlogπθ(at∣st)Gt]=∇θlogπθ(a0∣s0)G0
而对于
∇
θ
log
π
θ
(
a
t
∣
s
t
)
\nabla_{\theta}\log\pi_{\theta}(a_{t}|s_{t})
∇θlogπθ(at∣st),由于是对
θ
\theta
θ求导,而
θ
\theta
θ是一个四维向量,因此,其求导结果为4*4矩阵,同时该矩阵的各个元素的取值为:
(
∇
θ
log
softmax
(
θ
)
j
)
i
=
{
(
1
−
exp
(
l
j
)
∑
j
exp
(
l
j
)
)
if
i
=
j
−
exp
(
l
j
)
∑
j
exp
(
l
j
)
otherwise
(\nabla_\theta\log\text{softmax}(\theta)_j)_i=\begin{cases}(1-\frac{\exp(l_j)}{\sum_j\exp(l_j)})&\text{if }i=j\\\frac{-\exp(l_j)}{\sum_j\exp(l_j)}&\text{otherwise}\end{cases}
(∇θlogsoftmax(θ)j)i=⎩
⎨
⎧(1−∑jexp(lj)exp(lj))∑jexp(lj)−exp(lj)if i=jotherwise
故最终的策略梯度求解结果为
∇
θ
J
=
[
0.75
,
−
0.25
,
−
0.25
,
−
0.25
]
\nabla_{\theta}J=[0.75,-0.25,-0.25,-0.25]
∇θJ=[0.75,−0.25,−0.25,−0.25]
而此时假设动作
a
2
a_2
a2不能被采样,是一个无效动作,因此可以用一个大负数替换要屏蔽的操作的logits来实现!
π
θ
′
(
⋅
∣
s
0
)
=
s
o
f
t
m
a
x
(
m
a
s
k
(
[
l
0
,
l
1
,
l
2
,
l
3
]
)
)
=
s
o
f
t
m
a
x
(
[
l
0
,
l
1
,
M
,
l
3
]
)
=
[
π
θ
′
(
a
0
∣
s
0
)
,
π
θ
′
(
a
1
∣
s
0
)
,
ϵ
,
π
θ
′
(
a
3
∣
s
0
)
]
=
[
0.33
,
0.33
,
0.0000
,
0.33
]
\begin{aligned} \pi_{\theta}^{\prime}(\cdot|s_{0})&=\mathrm{softmax}(mask([l_{0},l_{1},l_{2},l_{3}])) \\ &=\mathrm{softmax}([l_{0},l_{1},M,l_{3}]) \\ &=[\pi_{\theta}^{\prime}(a_{0}|s_{0}),\pi_{\theta}^{\prime}(a_{1}|s_{0}),\epsilon,\pi_{\theta}^{\prime}(a_{3}|s_{0})] \\ &=[0.33,0.33,0.0000,0.33] \end{aligned}
πθ′(⋅∣s0)=softmax(mask([l0,l1,l2,l3]))=softmax([l0,l1,M,l3])=[πθ′(a0∣s0),πθ′(a1∣s0),ϵ,πθ′(a3∣s0)]=[0.33,0.33,0.0000,0.33]
故最后的策略梯度计算结果为:
∇
θ
J
=
E
τ
[
∇
θ
∑
t
=
0
T
−
1
log
π
θ
′
(
a
t
∣
s
t
)
G
t
]
=
∇
θ
log
π
θ
′
(
a
0
∣
s
0
)
G
0
=
[
0.67
,
−
0.33
,
0.0000
,
−
0.33
]
\begin{aligned} \nabla_{\theta}J& =\mathbb{E}_{\tau}\left[\nabla_{\theta}\sum_{t=0}^{T-1}\log\pi_{\theta}^{\prime}(a_{t}|s_{t})G_{t}\right] \\ &=\nabla_{\theta}\log\pi_{\theta}^{\prime}(a_{0}|s_{0})G_{0} \\ &=[0.67,-0.33,0.0000,-0.33] \end{aligned}
∇θJ=Eτ[∇θt=0∑T−1logπθ′(at∣st)Gt]=∇θlogπθ′(a0∣s0)G0=[0.67,−0.33,0.0000,−0.33]
上述例子可以有效说明,无效动作的掩码似乎不仅仅是“重新规范概率分布”,还可以使无效动作的logits相对应的梯度为零!
无效动作的掩码会生成有效的策略梯度
动作选择过程受到一个在 π θ \pi_\theta πθ之外的过程所影响,该过程用来计算掩码。因此,人们自然会想知道政策梯度定理是针对该情况要如何应用?
分析表明,无效动作的掩码过程可以看作是一个状态相关的可微函数,适用于 π θ ′ \pi_{\theta}^{\prime} πθ′的计算,因此无效动作策略可以看作是 π θ ′ \pi_{\theta}^{\prime} πθ′的策略梯度更新。
证明:假设s∈S是任意的,并将无效动作掩蔽的过程视为一个可微函数
i
n
v
s
inv_s
invs ,该函数被应用于由策略
π
θ
′
\pi_{\theta}^{\prime}
πθ′给定状态输出的Logits
l
s
l_s
ls 。那么就有:
π
θ
′
(
⋅
∣
s
)
=
softmax
(
m
a
s
k
(
l
(
s
)
)
)
m
a
s
k
(
l
(
s
)
)
i
=
{
l
i
if
a
i
is valid in
s
M
otherwise
\begin{aligned} \pi_{\theta}^{\prime}(\cdot|s)& =\text{softmax}(mask(l(s))) \\ mask(l(s))_i& \left.=\left\{\begin{aligned}&l_i&&\text{if }a_i\text{ is valid in }s\\&M&&\text{otherwise}\end{aligned}\right.\right. \end{aligned}
πθ′(⋅∣s)mask(l(s))i=softmax(mask(l(s)))={liMif ai is valid in sotherwise
显然,掩码对于logits中的元素来说要么是一个恒等函数,要么是常数函数。
【恒等函数即:输出=输入】
因为这两类函数是可微的,所以可导。因此, π θ ′ \pi_{\theta}^{\prime} πθ′对于参数 θ \theta θ是可微的,也就是说 ∂ π θ ′ ( a ∣ s ) ∂ θ \begin{aligned}\frac{\partial\pi_\theta^{\prime}(a|s)}{\partial\theta}\end{aligned} ∂θ∂πθ′(a∣s)对于所有的 a ∈ A , s ∈ S a\in A,s\in S a∈A,s∈S,都满足策略梯度定理的假设!因此,无效操作策略是策略 π θ ′ \pi_{\theta}^{\prime} πθ′的策略梯度。
需要注意的是,掩码过程不是分段线性函数。如果绘制掩码过程,它要么是一个单位函数【恒等函数】,要么是常数函数,取决于状态 s s s,从-∞到+∞。因此,我们称掩码为状态相关的可微函数。文章来源:https://www.toymoban.com/news/detail-839685.html
没有对后续实验部分进行记录
自行去阅读原文吧!
引用阅读
https://zhuanlan.zhihu.com/p/445681092
hhttp://arxiv.org/abs/2006.14171
https://zhuanlan.zhihu.com/p/57285213文章来源地址https://www.toymoban.com/news/detail-839685.html
到了这里,关于A Closer Look at Invalid Action Masking in Policy Gradient Algorithms 论文阅读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!