ICML 2024
paper
code
Intro
文章提出一种从混合质量数据中高效抽取有用状态动作数据用于模仿学习。算法基于一种假设,即使当前状态并非属于专家状态,但是若在该状态下采取动作导致下一状态是专家状态,那么该状态相较于随机状态更有价值。
Method
基于上述假设,算法首先训练一个判别器区分专家状态与混合非专家状态
max
d
E
s
∼
D
e
[
log
d
(
s
)
]
+
E
s
∼
D
u
[
log
(
1
−
d
(
s
)
)
]
(
10
)
\max_d\mathbb{E}_{s\sim\mathcal{D}_e}\big[\log d(s)\big]+\mathbb{E}_{s\sim\mathcal{D}_u}\big[\log(1-d(s))\big]\quad(10)
dmaxEs∼De[logd(s)]+Es∼Du[log(1−d(s))](10)
其中
D
u
=
D
e
∪
D
b
\mathcal{D}_u=\mathcal{D}_e\cup\mathcal{D}_b
Du=De∪Db。若状态的
d
(
s
)
d(s)
d(s)大于一个阈值,则将k-step的历史数据看作是有价值的专家级数据并存储
直接从
D
e
D_e
De与
D
s
D_s
Ds混合进行BC学习容易因为采样得到的数据
{
s
,
a
,
s
′
}
\{s,a,s'\}
{s,a,s′}中状态均为专家状态,但是动作可能并非来自专家数据,进而造成干扰。因此,采用判别器进行状态判断,分别进行行为克隆。
max
π
E
D
e
[
log
(
π
(
a
∣
s
)
)
]
+
E
D
s
[
1
(
D
e
(
s
)
=
0
)
log
(
π
(
a
∣
s
)
)
]
\max_{\pi}\mathbb{E}_{\mathcal{D}_{e}}[\log(\pi(a|s))]+\mathbb{E}_{\mathcal{D}_{s}}[\mathbb{1}(\mathcal{D}_{e}(s)=0)\log(\pi(a|s))]
πmaxEDe[log(π(a∣s))]+EDs[1(De(s)=0)log(π(a∣s))]
在实际操作中,利用重要新采样对上式改进并且将第二项的指示函数改造为狄雷克分布函数
max
π
J
(
π
)
≐
E
D
u
[
α
(
s
,
a
)
log
(
π
(
a
∣
s
)
)
]
+
E
D
s
[
β
(
s
,
a
)
log
(
π
(
a
∣
s
)
)
]
(13)
\begin{aligned}\max_{\pi}J(\pi)&\doteq\mathbb{E}_{\mathcal{D}_{u}}[\alpha(s,a)\log(\pi(a|s))]\\&+\mathbb{E}_{\mathcal{D}_{s}}[\beta(s,a)\log(\pi(a|s))]&\text{(13)}\end{aligned}
πmaxJ(π)≐EDu[α(s,a)log(π(a∣s))]+EDs[β(s,a)log(π(a∣s))](13)
其中
α
(
s
,
a
)
≐
D
e
(
s
,
a
)
D
u
(
s
,
a
)
=
D
∗
(
s
,
a
)
1
−
D
∗
(
s
,
a
)
\alpha(s,a)\doteq\frac{\mathcal D_e(s,a)}{\mathcal D_u(s,a)}=\frac{D^*(s,a)}{1-D^*(s,a)}
α(s,a)≐Du(s,a)De(s,a)=1−D∗(s,a)D∗(s,a),其中针对状态动作对的判别器
D
(
s
,
a
)
D(s,a)
D(s,a)训练如下
max
D
E
D
e
[
log
D
(
s
,
a
)
]
+
E
D
u
[
log
(
1
−
D
(
s
,
a
)
)
]
.
(
15
)
\max_D\mathbb{E}_{\mathcal{D}_e}[\log D(s,a)]+\mathbb{E}_{\mathcal{D}_u}[\log(1-D(s,a))].\quad(15)
DmaxEDe[logD(s,a)]+EDu[log(1−D(s,a))].(15)
第二项的
β
\beta
β为一个狄雷克分布函数
β
(
s
,
a
)
≐
1
(
d
∗
(
s
)
≤
σ
)
.
\beta(s,a)\doteq1(d^*(s)\leq\sigma).
β(s,a)≐1(d∗(s)≤σ).
伪代码
结果
不同数量下随机轨迹与单条专家轨迹组合下的实现效果
不同数量的专家数据下的实验效果