Introduction
Imitation learning 又称作 Learning by Demonstration 或 Apparenticeship Learning,它适用于解决那些无法定义或者量化reward,但能够收集到大量完成任务的过程范例作为学习资料的问题。Imitation Learning有两种具体的方法:Behavior Cloning和Inverse Reinforcement Learning(Inverse Optimal Control)
Behavior Cloning
类似于Supervised learning,机器再遇到相同的observation的时候采取和expert(就是那些已经完成任务的过程范例)一样的策略。以自驾车为例:
实现这个操作:首先收集若干个状态-行动对作为资料,然后构建一个network,它的输入是状态
s
t
s_t
st,输出是在该状态下采取的行动
a
^
t
\hat a_t
a^t,期望
a
^
t
\hat a_t
a^t和
a
t
a_t
at越接近越好。
Dataset Aggregation:用于辅助收集更多样的数据,尤其是那些expert在极端、罕见的情况下做出的action的数据。
还是以自驾车为例,此时假设车上有一个会开车的人类作为expert,当车子距离墙体还有约50m时,车子继续前进,当距离墙体只有5m的时候,尽管expert希望它向右转,但machine是不管expert的指令的,它只会一直往前开,直到expert人为干预车子的行动。此时machine就收集到了expert在极端状况下的action的数据。
Inverse Reinforcement Learning(IRL)
为什么需要IRL
Behavior Cloning存在许多问题。首先,假如在某些情况下expert的行为可能是出于个人的习惯或偶然发生的,但这种行为还是会被机器学习得到,不管这些行为是不是值得学习的。机器是一个network,它的capacity是有限的,此时‘什么值得学习,什么不值得学习’的问题就变得很重要了。而Supervised Learning并不能解决这个问题。
同时,在Supervised Learning中,我们希望训练集和测试集的数据是同分布的。而在Behavior Cloning中,我们的数据为expert完成任务的过程,假设其策略为 π ^ \hat \pi π^,对expert做cloning的actor策略设为 π ∗ \pi^* π∗,只要 π ^ \hat \pi π^和 π ∗ \pi^* π∗有微小的差距,最后就会导致训练和测试的状态集相差巨大,而凭借现有的学习方法又不可能使得machine和expert的策略完全相同。
所以我们提出了一种新的Imitation Learning的方法,即Inverse Reinforcement Learning(IRL)。
IRL的思想
在一般的RL问题中,我们根据给定的Reward function,让actor和环境做互动,不断调整参数以得到最好的actor。而在IRL中,我们假设Expert的策略就是最好的,根据它的行为策略反推出我们要研究的任务的Reward function。找到Reward function之后,在按照一般的RL问题过程找到最优的actor。这种方法的好处是在某些问题下的Reward function是非常简单的。IRL的框架如下图:
解释:我们让expert
π
^
\hat \pi
π^和actor
π
\pi
π分别去玩N场游戏,得到两个大小都为N的状态-行动序列{
τ
^
1
\hat \tau_1
τ^1、
τ
^
2
\hat \tau_2
τ^2、…、
τ
^
N
\hat \tau_N
τ^N}和{
τ
1
\tau_1
τ1、
τ
2
\tau_2
τ2、…、
τ
N
\tau_N
τN},然后我们假设Expert的策略是最好的,然后得到一个Reward function R,它必须满足expert的所有尝试分数之和都要比actor的所有尝试分数之和更高:
∑
n
=
1
N
R
(
τ
^
n
)
>
∑
n
=
1
N
R
(
τ
n
)
\sum\limits_{n = 1}^N {R({{\hat \tau }_n})} > \sum\limits_{n = 1}^N {R({\tau _n})}
n=1∑NR(τ^n)>n=1∑NR(τn)
在这个Reward function R的基础上按照常规的RL问题流程去训练出更好的actor,之后用这个新的actor重复这个流程。
(如果把这个思想当中的actor换成generator,Reward function换成discriminator,那这个思想其实和GAN的思想是差不多的)