Imitation Learning,也被称作learning from demonstration 或者 apprenticeship learning。针对的是没有回报的场景。
1. 介绍Imitation Learning
在 Imitation learning 里面,你有一些 expert 的 demonstration,那 machine 也可以跟环境互动,但它没有办法从环境里面得到任何的 reward,它只能看着 expert 的 demonstration 来学习什么是好,什么是不好。其实,多数的情况,我们都没有办法真的从环境里面得到非常明确的 reward。举例来说,如果是棋类游戏或者是电玩,你有非常明确的 reward。但是其实多数的任务,都是没有 reward 的。以 chat-bot 为例,机器跟人聊天,聊得怎么样算是好,聊得怎么样算是不好,你无法给出明确的 reward。所以很多 task 是根本就没有办法给出 reward 的。
虽然没有办法给出 reward,但是收集 expert 的 demonstration 是可以做到的。举例来说,
- 在自动驾驶汽车里面,虽然你没有办法给出自动驾驶汽车的 reward,但你可以收集很多人类开车的纪录。
- 在 chat-bot 里面,你可能没有办法定义什么叫做好的对话,什么叫做不好的对话。但是收集很多人的对话当作范例,这一件事情也是可行的。
2. Behavior Cloning
其实 Behavior Cloning 跟 supervised learning 是一模一样的。以自动驾驶汽车为例,你可以收集到人开自动驾驶汽车的所有资料,比如说可以通过行车记录器进行收集。看到这样子的 observation 的时候,人会决定向前。机器就采取跟人一样的行为,也向前,就结束了。这个就叫做 Behavior Cloning,Expert 做什么,机器就做一模一样的事。
怎么让机器学会跟 expert 一模一样的行为呢?就把它当作一个 supervised learning 的问题,你去收集很多行车记录器,然后再收集人在那个情境下会采取什么样的行为。你知道说人在 state s 1 s_1 s1会采取 action a 1 a_1 a