强化学习-稀疏奖励及模仿学习

稀疏奖励

实际上用 reinforcement learning learn agent 的时候,多数的时候 agent 都是没有办法得到 reward 的。在没有办法得到 reward 的情况下,训练 agent 是非常困难的。举例来说,假设你要训练一个机器手臂,然后桌上有一个螺丝钉跟螺丝起子,那你要训练它用螺丝起子把螺丝钉栓进去,这个很难,为什么?因为一开始你的 agent 是什么都不知道的,它唯一能够做不同的 action 的原因是 exploration。举例来说,你在做 Q-learning 的时候,会有一些随机性,让它去采取一些过去没有采取过的 action,那你要随机到说,它把螺丝起子捡起来,再把螺丝栓进去,然后就会得到 reward 1,这件事情是永远不可能发生的。所以,不管你的 actor 做了什么事情,它得到 reward 永远都是 0,对它来说不管采取什么样的 action 都是一样糟或者是一样的好。所以,它最后什么都不会学到。

如果环境中的 reward 非常 sparse,reinforcement learning 的问题就会变得非常的困难,但是人类可以在非常 sparse 的 reward 上面去学习。我们的人生通常多数的时候,我们就只是活在那里,都没有得到什么 reward 或是 penalty。但是,人还是可以采取各种各式各样的行为。所以,一个真正厉害的 AI 应该能够在 sparse reward 的情况下也学到要怎么跟这个环境互动。

模仿学习

模仿学习(imitation learning,IL)讨论的问题是:假设我们连奖励都没有,那要怎么办呢?模仿学习又叫做示范学习(learning from demonstration),学徒学习(apprenticeship learning),观察学习(learning by watching)。在模仿学习里面,你有一些专家的示范,那机器也可以跟环境互动,但它没有办法从环境里面得到任何的奖励,它只能看着专家的示范来学习什么是好,什么是不好。其实,多数的情况,我们都没有办法真的从环境里面得到非常明确的奖励。举例来说,如果是棋类游戏或者是电玩,你有非常明确的奖励。但是其实多数的任务,都是没有奖励的。以聊天机器人为例,机器跟人聊天,聊得怎么样算是好,聊得怎么样算是不好,你无法给出明确的奖励。所以很多任务是根本就没有办法给出奖励的。

虽然没有办法给出奖励,但是收集专家的示范是可以做到的。举例来说,在自动驾驶汽车里面,虽然你没有办法给出自动驾驶汽车的奖励,但你可以收集很多人类开车的纪录。在聊天机器人里面,你可能没有办法定义什么叫做好的对话,什么叫做不好的对话。但是收集很多人的对话当作范例,这一件事情也是可行的。

所以模仿学习的使用性非常高。假设你不知道该怎么定义奖励,你就可以收集到专家的示范。如果你可以收集到一些范例的话,你可以收集到一些很厉害的智能体(比如人)跟环境实际上的互动的话,那你就可以考虑模仿学习这个技术。在模仿学习里面,我们介绍两个方法。第一个叫做行为克隆(behavior cloning,BC),第二个叫做逆强化学习(inverse reinforcement learning,IRL) 或者叫做逆最优控制(inverse optimal control)。

行为克隆

其实行为克隆跟监督学习是一模一样的。如下图所示,以自动驾驶汽车为例,你可以收集到人开自动驾驶汽车的所有资料,比如说可以通过行车记录器进行收集。看到下图的观测的时候,人会决定向前。机器就采取跟人一样的行为,也向前,就结束了。这个就叫做行为克隆,专家做什么,机器就做一模一样的事。

逆强化学习

为什么叫逆强化学习,因为原来的强化学习里面,有一个环境和一个奖励函数。根据环境和奖励函数,通过强化学习这个技术,你会找到一个演员,你会学习出一个最优演员。但逆强化学习刚好是相反的,你没有奖励函数,你只有一堆专家的示范。但你还是有环境的。逆强化学习的做法是说假设我们现在有一堆专家的示范,我们用 τ^来代表专家的示范。如果是在玩电玩的话,每一个τ 就是一个很会玩电玩的人玩一场游戏的纪录,如果是自动驾驶汽车的话,就是人开自动驾驶汽车的纪录。这一边就是专家的示范,每一个τ 是一个轨迹。

参考资料

https://linklearner.com/datawhale-homepage/#/learn/detail/91

你可能感兴趣的:(强化学习,人工智能)