如果没有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:句子生成&聊天机器人
*晴儿* 发布了98 篇原创文章 · 获赞 14 · 访问量 6954 私信 关注