李宏毅强化学习笔记【5.Imitation Learning】

如果没有reward,怎么办

和环境互动,但不能得到reward,只能看着expert的demonstration学习。

判断开车撞人扣多少分很难,收集人开车的例子,人对话的例子是比较简单的。

不知道怎么定reward,但可以收集范例。

 

1.Behavior Cloning

expert做什么,机器就做什么一样的事情。

收集expert的state和action,然后学习一个network,输入state就输出action。

问题:

如果只收集expert的资料,state可能会被限制住。因为范例中有些state没有出现过。(比如人没出现过快撞墙的情况)

解决:收集expert在极端情况下的action。

方法:让actor π操作,问expert在该情况下该怎么办,但是π并不管expert的操作。然后把expert说的data拿去训练。

但是这样会完全学习expert的动作,不管有没有用。

主要问题:机器会完全学习expert的动作,但是它可能选择了一个错误的行为去学习。所以到底什么需要学习,什么不需要学习,是很重要的。

问题:mismatch:action会影响下一个state。很难让训练的π和expert完全一样,最后结果可能会差很多。

 

2.Inverse Reinforcement Learning

一般的情形↓,通过reward找到最优的actor

通过expert,反推reward function

然后通过学到的reward function,学到一个好的actor

 

先让expert玩游戏

让actor玩游戏

反推reward function(原则:expert永远是最好的,定义一个reward function,使得expert的分数永远大于actor)

有了新的reward function可以学习一个新的actor,但是要改reward function,让expert比新actor的分数高。

 

 最后学习完了得到的reward function,expert和actor都能得到一样高的分数。

expert通常只需要几个data就可以训练了。

 

GAN和IRL的对比

 

 

第三人称视角:有时候机器看到的视野和人看到的视野不一样。(一般人人手把手教机器玩,有没有可能机器看着人玩就学会了玩)

Recap:句子生成&聊天机器人