论文地址:https://sites.google.com/view/realrl
一、要解决什么问题?
强化学习仍遭受训练效率、普及化、安全的在线探索、sim-to-real以及稀疏奖励学习的问题。因此作者提出一套方法,能够使得强化学习能在一小段时间学完,同时奖励函数还是以稀疏的方式定义。
二、创新点是什么?
首先,作者给我们灌输了一个“感知即预测”的观念。我自身是赞成也能理解这个观念的。有很多人将动态系统的建模与对系统未来状态的预测画上等号。在现代控制理论的状态空间建模方式中,也能对此窥见一二。由此作者认为可以先用离线的预测学习方式学习General value functions,用视觉输入做一个counterfactual predictions,用以获得多时间跨度的预测结果和一个辅助的奖励函数。最终提高在线强化学习的效率。
三、具体做法是什么?
这是学习的总体框图,当然本文的重点是前半部分Offline learning。
1、General value functions
我看来看去都觉得这个东西就是个不同折扣率下的累计回报,也就是critic网络所预测的东西,只不过现在仅用图像这些东西进行预测,获得针对不同时间跨度的预测值,也就是上面的γ1-γ4.
ϕ
τ
(
s
)
=
E
τ
[
∑
k
=
0
∞
(
∏
j
=
0
k
−
1
γ
t
+
j
+
1
)
c
t
+
k
∣
s
t
=
s
,
a
t
=
a
]
\phi ^ { \tau } ( s ) = E _ { \tau } [ \sum _ { k = 0 } ^ { \infty } ( \prod _ { j = 0 } ^ { k - 1 } \gamma _ { t + j + 1 } ) c _ { t + k } | s _ { t } = s , a _ { t } = a ]
ϕτ(s)=Eτ[k=0∑∞(j=0∏k−1γt+j+1)ct+k∣st=s,at=a]
这里有个问题,在不同状态下的cumulant的值,也就是文章中的c值仍需要自己去设计啊?这和设计一个dense reward又有什么区别呢?
2、learning from offline samples
先前了解过一些离线强化学习的部分,其实离线强化学习与在线最大的不同便是这些数据获得的策略不是我现在需要更新的策略。因此在利用这些数据的时候,需要用到重要度采样。在本文中有一个很大的问题就是获得offline samples的策略未知,也就是下式的分母部分未知:
ρ
=
τ
(
a
∣
s
)
μ
(
a
∣
s
)
\rho = \frac { \tau ( a | s ) } { \mu ( a | s ) }
ρ=μ(a∣s)τ(a∣s)
解决方法便是训练了一个判别器,用以判断当前的动作状态组它可能是在那种策略下获得的—μ(a|s)和中间概率密度函数η(a|s)中分辨出样本。而后便通过推算就可以用这个判别器输出对sample的策略进行估计。
μ
(
a
∣
s
)
η
(
a
∣
s
)
=
p
(
a
∣
s
,
z
=
1
)
p
(
a
∣
s
,
z
=
0
)
=
p
(
z
=
1
∣
a
,
s
)
/
p
(
z
=
1
)
p
(
z
=
0
∣
a
,
s
)
/
p
(
z
=
0
)
=
p
(
z
=
1
∣
a
,
s
)
p
(
z
=
0
∣
a
,
s
)
=
g
(
a
,
s
)
1
−
g
(
a
,
s
)
\left. \begin{array} { l }{ \frac { \mu ( a | s ) } { \eta ( a | s ) } = \frac { p ( a | s , z = 1 ) } { p ( a | s , z = 0 ) } = \frac { p ( z = 1 | a , s ) / p ( z = 1 ) } { p ( z = 0 | a , s ) / p ( z = 0 ) } }\\{ = \frac { p ( z = 1 | a , s ) } { p ( z = 0 | a , s ) } = \frac { g ( a , s ) } { 1 - g ( a , s ) } } \end{array} \right.
η(a∣s)μ(a∣s)=p(a∣s,z=0)p(a∣s,z=1)=p(z=0∣a,s)/p(z=0)p(z=1∣a,s)/p(z=1)=p(z=0∣a,s)p(z=1∣a,s)=1−g(a,s)g(a,s)
μ ^ ( a ∣ s ) = g ( a , s ) 1 − g ( a , s ) η ( a ∣ s ) \hat { \mu } ( a | s ) = \frac { g ( a , s ) } { 1 - g ( a , s ) } \eta ( a | s ) μ^(a∣s)=1−g(a,s)g(a,s)η(a∣s)
这合理嘛?主要是这部分标签打的太随意了点。不太能理解。。。
3、combine with RL
一方面将离线学习的多时间跨度预测直接与关节力矩合并成在线强化学习的输入,另一方面也将这个预测作为辅助的奖励函数。
以下是离线学习的流程图
四、实验是怎么设计的?
1、作者为了验证4个目标设计了对应对比实验,在仿真中训练进行验证,用近100次的成功率作为指标。
2、实物训练的实验,为了显示其鲁棒性还在训练过程中加入了人为干扰,最终仍能获得较好的策略。
五、简单总结
阅读的时候觉得工作很牛逼,难道用了这些方法以后强化学习又快又不用做reward shaping等繁琐的事了?仔细一想,其实作者将强化学习中的一部分学习内容先通过离线这种相对高效的学习方式先给学了,这种思想值得进一步思考。但是文章内容还不够细节,一些理论支撑也不是很让我信服,让我读完之后觉得复现难度较高。