GAIL:一种结合GAN思想的反向强化学习方法

前几天听到一声广告语:只要你愿意,从现在开始努力,最坏的结果不过是大器晚成。好了,既然我们决定要努力,要怎么做呢?我们要有自己的一套方法论,如何得到自己的方法论呢?最简单的方法就是从成功者的身上去学习,在学习的基础上,结合自身的情况和经验,不断完善形成自己的一套方法论,进而取得成功。这其实就是我们今天要介绍的反向强化学习方法(Inverse Reinforcement Learning)的基本思想。同时,也作为辞旧迎新的话语,激励自己和大家在新的一年里,不断努力,砥砺前行。

本文首先将介绍反向强化学习的基本概念和实现思路;随后将介绍其中一种结合GAN思想的反向强化学习方法:GAIL;最后,将介绍一下GAIL的代码实现思路。

1、反向强化学习基础

反向强化学习也称为模仿学习(Imitation Learning)学徒学习(Apprentice Learning)

在强化学习中,我们的基本思路是通过agent与环境的交互,根据环境对于agent在某一状态下所采取动作的回报,对agent的策略进行更新,从而获得最大化的长期期望收益。也就是说,强化学习通常是在回报已知的情况下求出值函数和策略。但是如果回报我们无法获得呢?反向强化学习使用了逆向思维,我们不通过回报求策略,而是反过来,根据策略求回报。

这听上去有点荒谬,我们想通过交互获得回报,就是为了求解更好的策略,现在有了策略,我们为什么还要去求回报呢?因为很多时候,我们拥有的不是最优的策略,而是基于这些策略的一些样本。

想象我们想要学习打羽毛球,虽然我们无法像专业运动员那样拥有超强的战术策略,但是我们可以通过观察他们的比赛录像,通过观察他们在不同情况下的不同击球策略,来不断提高我们自身的球技。实际上,我们在实际情况下也是这么做的:在家不断学习高手的动作要领,并铭记于心,然后回到球场上一试身手。实际上,这就是一个从反向强化学习到强化学习的过程。首先通过最优策略的交互样本学习到回报函数,即不同的情境下的不同击球方式(扣杀球,放小球,球速,击球高度等等),能够获得的回报是怎样的。接下来就可以通过得到回报函数进行尝试,使用强化学习的方法得到最终的策略。

好了,我们给出反向强化学习的一般思路:

  1. 随机生成一个策略作为agent的初始策略。
  2. 通过比较高手的交互样本和自身的交互样本,学习得到回报函数
  3. 利用回报函数进行强化学习,提升自己的策略水平
  4. 如果自身的策略所能得到的奖励和高手的策略差不多,就可以停止学习,否则返回第二步继续学习。

2、GAIL的基本思路

本节我们简单介绍一种反向强化学习的实现思路,这种思路结合了GAN的思想,称为:GAIL(Generative Adversarial Imitation Learning)

简单回顾下GAN,在GAN中,我们有Generator和Discriminator。其最初主要应用于图像生成,因此我们以图像生成这一应用来介绍下它的主要流程:在图像生成中,Generator要用来学习真实图像分布从而让自身生成的图像更加真实,以骗过Discriminator。Discriminator则需要对接收的图片进行真假判别。在整个过程中,Generator努力地让生成的图像更加真实,而Discriminator则努力地去识别出图像的真假,这个过程相当于一个二人博弈,随着时间的推移,Generator和Discriminator在不断地进行对抗,最终两个网络达到了一个动态均衡:Generator生成的图像接近于真实图像分布,而Discriminator识别不出真假图像,对于给定图像的预测为真的概率基本接近 0.5(相当于随机猜测类别)。

回到GAIL中,我们该如何应用GAN的思想呢。在这之前,我们首先要做出假设,即我们已有的高手的策略就是最优策略,在不同的状态s下所采取的动作a就是最优的动作。

在GAIL中,Generator其实就是我们的Agent,它会根据不同的state,采取不同的动作。而Discriminator将要努力区分高手的行动和agent的行动。对Discriminator来说,我们可以转化成一个简单的二分类问题,即将当前的状态和动作作为输入,得到这个动作是最优动作的概率。如果这个状态-动作对来自高手的交互样本,那么Discriminator希望得到的概率越接近于1越好,而如果这个状态-动作对来自Generator的交互样本,那么Discriminator希望得到的概率越接近于0越好对Generator来说,我们希望自己的策略越接近于高手的策略,那么就可以使用Discriminator输出的概率作为奖励,来更新自身的策略,如果Discriminator给出的概率越高,说明我们在这一状态下采取的动作是一个较优的动作,我们就提高该动作出现的概率,反之则是一个较差的动作,降低其出现的概率

以上就是GAIL的基本思路,是不是跟GAN如出一辙?

3、GAIL的代码实现

结下来,我们来看一下如何实现GAIL,这里我们不给出具体的代码,只给出具体的实现思路。

代码地址为:https://github.com/princewen/tensorflow_practice/tree/master/RL/Basic-GAIL-Demo

代码结构如下:

我们按照以下几步来实现GAIL。

训练一个高手

首先运行run_ppo.py文件,该文件会通过PPO算法来训练一个agent,如果训练的agent能够满足我们的高手定义,则终止学习,此时学习到的agent我们就认为是一个高手。

得到高手的交互序列

接下来,我们运行sample_trajectory.py文件,得到高手的状态-动作对,保存在trajectory文件夹下。

训练GAIL模型

接下来运行run_gail.py文件,基于上述介绍的GAIL的基本思路,来进行学习。

检验学习成果

最后,运行test_policy.py文件,我们可以检验一下我们通过GAIL学习到的agent的学习成果。

本文GAIL模型就介绍到这里啦。最后,祝大家新年快乐啦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265