目录
1.模仿学习
1.1先说强化学习
1.2再说逆强化学习
1.3最后说生成对抗模仿学习
1.3.1先说GAN
1.3.2再说生成对抗模仿学习
1.4逆强化学习常用方法
参考文献
定义:当我们想训练机器人时,通过复制人类的动作,对机器人进行训练,进而达到模仿的目的
行为克隆:不需要奖励函数,直接学习策略。
逆强化学习:需要专家经验得到奖励函数,再根据奖励函数重新学习策略。
生成式对抗模仿学习:可以理解为,逆强化学习的专家经验依赖于真人提供,生成式对抗模仿学习利用GAN用网络去替代真人提供的专家经验,去学习奖励函数,同时得到策略。
逆强化学习和生成式对抗模仿学习区别:简单理解逆强化学习就是你亲自拿着机器人的手,手把手教着机器人去做事,同时你还要观察这个过程。生成式对抗模仿学习是你又找了一个人,帮你拿着机器人的手,手把手教着机器人去做事,而你只需要观察这个过程就行了。
强化学习关键就是通过设计奖励函数,找到一个动作序列下的最优策略函数,但通常在求解过程中的奖励函数是人为指定的,这无法保证设计的是最合适的奖励函数,而在很多复杂任务中,奖励函数是很难定下来的。所以有了逆强化学习。
强化学习中最难的问题就是如何设计奖励函数,所以用逆强化学习来解决这个问题,思路如下,假设我们想进行一个机器人采摘红薯的训练,我们找了农业专家,将他们认为好的动作,做成指令集对机器人进行轨迹规划,这就是专家经验,我们假设专家经验建立在最优的奖励函数基础上,然后让机器人运动,在次此基础上,学习该策略下的奖励函数,最后再用该奖励函数重新训练机器人,得到新的策略
进一步根据下图理解,逆强化学习中,给定了状态s,动作a,状态转移概率函数p,按照固定的策略(专家经验),采样得到动作轨迹,再根据这个动作轨迹,学习奖励函数r,最后再根据得到的奖励函数,重新学习策略。
GAN的全称是Generative adversarial network,中文翻译过来就是生成对抗网络。生成对抗网络其实是两个网络的组合:生成网络(Generator)负责生成模拟数据;判别网络Discriminator)负责判断输入的数据是真实的还是生成的。生成网络要不断优化自己生成的数据让判别网络判断不出来,判别网络也要优化自己让自己判断得更准确。二者关系形成对抗,因此叫对抗网络。
在逆强化学习(IRL)领域有名的算法是生成对抗模仿学习(GAIL),这种算法模仿了生成对抗网络GAN。我们要训练一个策略网络去尽量拟合提供的示教数据,那么我们可以让需要训练的奖励函数来进行评价,奖励函数通过输出评分来分辨哪个是示教数据的轨迹,哪个是自己生成的虚假轨迹;而策略网络(生成网络)负责生成虚假的轨迹,尽可能骗过奖励函数(判别网络),让其难辨真假。两者是对抗关系,双方的损失函数是对立的,两者在相互对抗中一起成长,最后训练出一个较好的奖励函数和一个较好的策略网络。
最大边际形式化:包括学徒学习(AL)、MMP方法、结构化分类、神经逆向强化学习,但是这种方法无法解决歧义问题。
解决歧义问题:很多时候不存在单独的奖励函数使得专家示例行为,既是最优又比其他行为好很多,或者有很多不同的奖励函数使得出现相同的专家策略。
基于概率模型的形式化:可以解决歧义性问题
1.强化学习进阶【逆强化学习】_小小何先生的博客-CSDN博客
2.Robot learning by demonstration - Scholarpedia
3.【强化学习】逆强化学习概念_Luminous_song的博客-CSDN博客
4.西瓜书笔记16-2:逆强化学习_lagoon_lala的博客-CSDN博客
5.强化学习+逆强化学习简单总结_哔哩哔哩_bilibili
6.模仿学习(Imitation Learning)概述_Interesting AI的博客-CSDN博客
7.模仿学习(Imitation Learning)入门_模仿学习加速训练_微笑小星的博客-CSDN博客
8.【强化学习】GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》_gail算法_贰锤的博客-CSDN博客
9.强化学习(二)--让你轻松玩转生成对抗网络(GAN)与生成对抗模仿学习(GAIL)_强化学习 生成对抗_Robert--cao的博客-CSDN博客10.GAN(生成对抗网络)的系统全面介绍(醍醐灌顶)_打灰人的博客-CSDN博客
11.生成对抗网络(GAN)详解与实例_gan网络实例_你这个代码我看不懂.的博客-CSDN博客