李宏毅深度强化学习(国语)课程(2018) 笔记(八)Imitation Learning

 李宏毅深度强化学习(国语)课程(2018)

 李宏毅深度强化学习(国语)课程(2018)_哔哩哔哩_bilibili

​        机器是可以与环境进行交互的,但是大部分情况下,机器却不能从这个过程中显示的获得奖励,奖励函数是难以确定。因此,模仿学习方法考虑让机器学习人类的做法,来使得机器可以去做人类才能完成的事。

​         模仿学习主要有两种方式:行为克隆(Behavior Cloning)和逆向强化学习(Inverse Reinforcement Learning)。

        行为克隆:假设有许多专家的示例数据,它们以这样的形式出现:<s1,a1>,<s2,a2>,...,<sn,an>,si代表当前的环境,ai代表当前环境下专家采取的动作。得到了这一串专家动作之后,直接丢到一个神经网络中,s是输入,a是输出,直接训练出一个结果。

          这种方法的缺点之一是:机器的输出非常依赖专家数据,一旦出现了训练数据中没有的场景,机器的输出就会失去了参考,变得极其不靠谱。另外,在此类问题中处理的都是一系列相关的环境和动作,极易出现一步错步步错的情况。

扫描二维码关注公众号,回复: 15504924 查看本文章

​        针对这种问题,采用了数据增强(Data Aggregation)的手段。

        方法举例:假设车里面坐了一个专家,专家在每个不同的环境下都会给一个策略,但是机器仍然是按照原本的模型输出的策略行进的,这样子当汽车偏离的时候,虽然车可能依然会撞墙,但是此时专家就会把这个模型缺失的一部分数据补充上。

​        这种方法的缺点之二是:机器会学习到专家所有的行为,甚至是无关紧要的行为。总的来说,行为克隆本质上是一种有监督的学习,在现实应用中,很不靠谱。

         逆向强化学习(Inverse Reinforcement Learning):可以去学习奖励函数。

        传统的强化学习下方的箭头应该是从左到右的,基于奖励函数与环境交互,做出最大奖励的行为,但是在逆向强化学习算法中,这个过程却是从右向左进行,通过专家数据学习到奖励函数

        注意:在逆向强化学习算法中从左到右也要走。

        传统Reinforcement Learning:

        逆强化学习的示意图如下: 

        算法原理如下:通过专家数据,学习一个奖励函数,再通过这个奖励函数去生成模型的轨迹。至于如何去学习这个奖励函数,我们给的指导就是要保证专家数据获得的奖励一定要比模型生成的数据的奖励要多。

         这个过程和GAN类似:上图右下角生成Actor和Actor轨迹的行为就像是GAN中的Generator,而右上角的奖励函数,起到的就是Discriminator的作用,用来去区分这个网络是不是专家生成的。Generator尽可能去寻找奖励最大的行为,而Discriminator则不断优化奖励函数,让专家的行为和模型的行为区分开来。

猜你喜欢

转载自blog.csdn.net/qq_22749225/article/details/125633336