问题研究在没有奖励的情况下,如何利用成功的演示数据帮助智能体进行强化学习。文章给出的方法是利用PU分类方法学习二元分类器,该分类器可以看作是价值函数用于策略学习
Intro
传统强化学习需要人工设置奖励函数,但是在许多情况下设定较为困难,反而在一些已被解决的任务中,比较容易获取到成功的事例。受这一观察的启发,我们从第一性原理推导出控制算法,在给定成功结果状态的示例下,该算法旨在访问具有高概率导致成功结果的状态。先前的工作分两个阶段处理类似的问题设置,首先学习一个辅助奖励函数,然后使用另一个强化学习算法优化这个奖励函数。相比之下,本文推导出一种基于递归分类的方法RCE,该方法避开辅助奖励函数,而是直接从转换和成功结果中学习价值函数。
Method
该问题下智能体无法获取环境的奖励函数,但额外有一个由成功示例构成的数据集
S
∗
\mathcal{S}^*
S∗。算法的核心是构建一个“价值函数”,这个函数是通过Positive-Unlabeled 分类得到。PU训练一个分类器将数据分为从条件分布
p
π
(
s
t
,
a
t
∣
e
+
=
1
)
p^\pi(s_t,a_t|e_{+}=1)
pπ(st,at∣e+=1)中采样的“正”状态-动作对,以及从边际分布采样的负样本
p
(
s
t
,
a
t
)
p(s_t,a_t)
p(st,at)。其中二元随机变量
e
t
∈
{
0
,
1
}
e_t \in \{0,1\}
et∈{0,1}表示任务是否在时间 t 解决。该分类器训练后,对能够帮助任务完成的样本概率表示为
C
θ
π
(
s
t
,
a
t
)
=
p
π
(
s
t
,
a
t
∣
e
t
+
=
1
)
p
(
e
t
+
=
1
)
p
π
(
s
t
,
a
t
∣
e
t
+
=
1
)
p
(
e
t
+
=
1
)
+
p
(
s
t
,
a
t
)
(
4
)
C_\theta^\pi(\mathbf{s_t},\mathbf{a_t})=\frac{p^\pi(\mathbf{s_t},\mathbf{a_t}\mid\mathbf{e_{t+}}=1)p(\mathbf{e_{t+}}=1)}{p^\pi(\mathbf{s_t},\mathbf{a_t}\mid\mathbf{e_{t+}}=1)p(\mathbf{e_{t+}}=1)+p(\mathbf{s_t},\mathbf{a_t})} (4)
Cθπ(st,at)=pπ(st,at∣et+=1)p(et+=1)+p(st,at)pπ(st,at∣et+=1)p(et+=1)(4)
该分类器的预测概率告诉我们样本未来解决任务的概率:
C
θ
π
(
s
t
,
a
t
)
1
−
C
θ
π
(
s
t
,
a
t
)
=
p
π
(
e
t
+
=
1
∣
s
t
,
a
t
)
.
\frac{C_\theta^\pi(\mathbf{s_t},\mathbf{a_t})}{1-C_\theta^\pi(\mathbf{s_t},\mathbf{a_t})}=p^\pi(\mathbf{e_{t+}}=1\mid\mathbf{s_t},\mathbf{a_t}).
1−Cθπ(st,at)Cθπ(st,at)=pπ(et+=1∣st,at).
该分类器由神经网络构成,通过最大似然优化参数
L
π
(
θ
)
≜
p
(
e
t
+
=
1
)
E
p
(
s
t
,
a
t
∣
e
t
+
=
1
)
[
log
C
θ
π
(
s
t
,
a
t
)
]
+
E
p
(
s
t
,
a
t
)
[
log
(
1
−
C
θ
π
(
s
t
,
a
t
)
)
]
.
(
6
)
\begin{aligned}\mathcal{L}^{\pi}(\theta)&\triangleq p(\mathbf{e_{t+}}=1)\mathbb{E}_{p(\mathbf{s_{t}},\mathbf{a_{t}}|\mathbf{e_{t+}}=1)}[\log C_{\theta}^{\pi}(\mathbf{s_{t}},\mathbf{a_{t}})]\\&+\mathbb{E}_{p(\mathbf{s_{t}},\mathbf{a_{t}})}[\log(1-C_{\theta}^{\pi}(\mathbf{s_{t}},\mathbf{a_{t}}))].\quad(6)\end{aligned}
Lπ(θ)≜p(et+=1)Ep(st,at∣et+=1)[logCθπ(st,at)]+Ep(st,at)[log(1−Cθπ(st,at))].(6)
第一个期望值的计算无法通过采样估计,因此需要变形。
第一步由贝叶斯
p
(
s
t
,
a
t
∣
e
t
+
=
1
)
p
(
e
t
+
=
1
)
=
p
π
(
e
t
+
=
1
∣
s
t
,
a
t
)
p
(
s
t
,
a
t
)
.
p(\mathbf{s_{t}},\mathbf{a_{t}}\mid\mathbf{e_{t+}}=1)p(\mathbf{e_{t+}}=1)=p^{\pi}(\mathbf{e_{t+}}=1\mid\mathbf{s_{t}},\mathbf{a_{t}})p(\mathbf{s_{t}},\mathbf{a_{t}}).
p(st,at∣et+=1)p(et+=1)=pπ(et+=1∣st,at)p(st,at).
第二步
p
π
(
e
t
+
∣
s
t
,
a
t
)
≜
E
p
π
(
s
t
+
∣
s
t
,
a
t
)
[
p
(
e
t
+
∣
s
t
+
)
]
,
p^\pi(\mathbf{e_{t+}}\mid\mathbf{s_t},\mathbf{a_t})\triangleq\mathbb{E}_{p^\pi(\mathbf{s_{t+}}\mid\mathbf{s_t},\mathbf{a_t})}[p(\mathbf{e_{t+}}\mid\mathbf{s_{t+}})],
pπ(et+∣st,at)≜Epπ(st+∣st,at)[p(et+∣st+)],
where the (discounted) distribution over future states is
p
π
(
s
t
+
∣
s
t
,
a
t
)
≜
(
1
−
γ
)
∑
Δ
=
0
∞
p
π
(
s
t
+
Δ
=
s
t
+
∣
s
t
,
a
t
)
.
p^\pi(\mathbf{s_{t+}}\mid\mathbf{s_t},\mathbf{a_t})\triangleq(1-\gamma)\sum_{\Delta=0}^\infty p^\pi(s_{t+\Delta}=\mathbf{s_{t+}}\mid\mathbf{s_t},\mathbf{a_t}).
pπ(st+∣st,at)≜(1−γ)Δ=0∑∞pπ(st+Δ=st+∣st,at).
因此
p
π
(
e
t
+
=
1
∣
s
t
,
a
t
)
=
(
1
−
γ
)
p
(
e
t
=
1
∣
s
t
)
(7)
+
γ
E
p
(
s
t
+
1
∣
s
t
,
a
t
)
,
[
p
π
(
e
t
+
=
1
∣
s
t
+
1
,
a
t
+
1
)
]
.
\begin{aligned}p^{\pi}(\mathbf{e_{t+}}&=1\mid\mathbf{s_{t}},\mathbf{a_{t}})=(1-\gamma)p(\mathbf{e_{t}}=1\mid\mathbf{s_{t}})&\text{(7)}\\&+\gamma\mathbb{E}_{p(\mathbf{s_{t+1}|s_{t},a_{t})},}\left[p^{\pi}(\mathbf{e_{t+}}=1\mid\mathbf{s_{t+1}},\mathbf{a_{t+1}})\right].\end{aligned}
pπ(et+=1∣st,at)=(1−γ)p(et=1∣st)+γEp(st+1∣st,at),[pπ(et+=1∣st+1,at+1)].(7)
第三步,带入损失函数计算期望。假设
p
U
(
e
t
+
=
1
)
=
1
p_{U}(\mathbf{e_{t+}}=1)=1
pU(et+=1)=1
L
π
(
θ
)
=
(
1
−
γ
)
E
p
U
(
s
t
∣
e
t
=
1
)
,
p
(
a
t
∣
s
t
)
[
log
C
θ
π
(
s
t
,
a
t
)
⏟
(
a
)
]
(8)
+
E
p
(
s
t
,
a
t
,
s
t
+
1
)
[
γ
w
log
C
θ
π
(
s
t
,
a
t
)
⏟
(
b
)
+
log
(
1
−
C
θ
π
(
s
t
,
a
t
)
)
⏟
(
c
)
]
,
where
w
=
E
p
(
a
t
+
1
∣
s
t
+
1
)
[
C
θ
π
(
s
t
+
1
,
a
t
+
1
)
1
−
C
θ
π
(
s
t
+
1
,
a
t
+
1
)
]
(9)
\begin{aligned}\mathcal{L}^{\pi}(\theta)=&(1-\gamma)\mathbb{E}_{p_U(\mathbf{s_t}|\mathbf{e_t}=1),p(a_t|s_t)}[\underbrace{\log C_\theta^\pi(\mathbf{s_t},\mathbf{a_t})}_{(a)}]&\text{(8)}\\&+\mathbb{E}_{p(\mathbf{s_t},\mathbf{a_t},\mathbf{s_{t+1}})}[\underbrace{\gamma w\log C_\theta^\pi(\mathbf{s_t},\mathbf{a_t})}_{(b)}+\underbrace{\log(1-C_\theta^\pi(\mathbf{s_t},\mathbf{a_t}))}_{(c)}],\\\text{where}\\&w=\mathbb{E}_{p(\mathbf{a_{t+1}}|\mathbf{s_{t+1}})}\left[\frac{C_\theta^\pi(\mathbf{s_{t+1}},\mathbf{a_{t+1}})}{1-C_\theta^\pi(\mathbf{s_{t+1}},\mathbf{a_{t+1}})}\right]&\text{(9)}\end{aligned}
Lπ(θ)=where(1−γ)EpU(st∣et=1),p(at∣st)[(a)
logCθπ(st,at)]+Ep(st,at,st+1)[(b)
γwlogCθπ(st,at)+(c)
log(1−Cθπ(st,at))],w=Ep(at+1∣st+1)[1−Cθπ(st+1,at+1)Cθπ(st+1,at+1)](8)(9)
其中第一项的期望可以通过采样成功示例的方式进行估计
s
∗
∼
p
(
s
t
∣
e
t
=
1
)
\mathbf{s^*}\sim p(\mathbf{s_t}\mid\mathbf{e_t}=1)
s∗∼p(st∣et=1)。方程直观的解释是第一项 (a) 训练分类器为成功示例本身预测 1,第三项(c)训练分类器对随机样本预测0 。重要是第二项 (b),它类似于时间差异学习中的“bootstrapping”术语 (Sutton, 1988)。对于(b),训练分类器以预测未来成功的概率取决于下一个时间步成功的概率(
ω
\omega
ω),实践中发现(b)采用n-steps效果更好
那原始的最大似然问题转化为最小化两个交叉熵损失函数
min
θ
(
1
−
γ
)
E
p
(
s
t
∣
e
t
=
1
)
,
a
t
∼
π
(
a
t
∣
s
t
)
[
C
E
(
C
(
s
t
,
a
t
)
;
y
=
1
)
]
(
10
)
+
(
1
+
γ
w
)
E
p
(
s
t
,
a
t
,
s
t
+
1
)
[
C
E
(
C
(
s
t
,
a
t
)
;
y
=
γ
w
γ
w
+
1
)
]
.
\min_{\theta}(1-\gamma)\mathbb{E}_{p(s_t|e_t=1),\mathbf{a_{t}}\sim\pi(\mathbf{a_{t}}|\mathbf{s_{t}})}\left[\mathcal{C}\mathcal{E}(C(\mathbf{s_{t}},\mathbf{a_{t}});y=1)\right]\quad(10)\\+(1+\gamma w)\mathbb{E}_{p(\mathbf{s_{t}},\mathbf{a_{t}},\mathbf{s_{t+1}})}\left[\mathcal{C}\mathcal{E}\left(C(\mathbf{s_{t}},\mathbf{a_{t}});y=\frac{\gamma w}{\gamma w+1}\right)\right].
θmin(1−γ)Ep(st∣et=1),at∼π(at∣st)[CE(C(st,at);y=1)](10)+(1+γw)Ep(st,at,st+1)[CE(C(st,at);y=γw+1γw)].
与现有的 actor-critic RL 算法非常相似,将标准 MSE 损失被替换为两个交叉熵损失,一个用于成功示例,一个用于重放缓冲区的经验。其中,对成功样本的动作是采用当前策略
π
ϕ
\pi_{\phi}
πϕ,相较于behavior policy(对buffer中的数据进行BC得到)有更好的性能表现
分类器优化后便可看作是价值函数用来优化策略
max
ϕ
E
π
ϕ
(
a
t
∣
s
t
)
[
C
θ
π
(
s
t
,
a
t
)
]
.
\max_{\phi}\mathbb{E}_{\pi_{\phi}(\mathbf{a_{t}}|\mathbf{s_{t}})}[C_{\theta}^{\pi}(\mathbf{s_{t}},\mathbf{a_{t}})].
ϕmaxEπϕ(at∣st)[Cθπ(st,at)].