强化学习的学习之路(五十六)2021-02-25 模仿学习存在的问题

作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!

Problem of Imitation Learning

在模仿学习中,误差主要来自两个方面,一个是对于未见过的observation的泛化误差,另一个是对于已见过observation的拟合误差。对于bahaviroal cloning和DAgger而言,都是在尽可能通过增加数据,减少第一种误差。

Non-Markovian bahavior

前面的博客里给大家分享过observation和state的差别,简单来说,state表示了当前状态(全部信息),而observation是state生成的结果(里面只有部分信息)。比如在自动驾驶这个场景下,人类在标注数据进行决策的时候,考虑到的并不仅仅是当前这一帧的observation,而是根据过去的许多信息来做出判断的,对于同样一帧图像,可能由于前面的信息不同,人类会做出不一样的决策。对于这样的数据,算法在学习的时候是有可能产生混淆的,这也就导致算法对于数据的拟合效果不够好。

在这里插入图片描述

针对于这个问题,最直观的方法就是不只是把当前帧作为输入,而是使用过去若干帧作为输入并从中提取有用的信息,前面讲Nature DQN时也是这么做的。比如说我们可以用RNN或者LSTM去提取时序信息,这种做法带来的问题就是它需要更多的参数,从而使模型变得很大。

在这里插入图片描述

在NIPS 2019上, Sergey Levine发表了一篇论文“ Causal Confusion in Imitation Learning”,指出在模仿学习中如果忽略因果性,可能会造成“ causal misidentification”,使得拿到越多的信息反而会造成越差的效果。这是因为信息越多的时候,代表着干扰信息(论文中称为confounder)也越多,因此在决策时,如果忽略了因果性,策略可能会觉得confounder时是造成结果的原因,而忽略了造成结果的真正的原因。比如在下面的两个图当中,左边的图比右边的图多了一个仪表盘的信息,每一次看到前方有行人时,专家策略都会踩下刹车,仪表盘的刹车灯就会亮,所以左边的智能体就认为应该在刹车灯亮的时候踩下刹车,这就与我们想要的完全不一致。而右边的图没有了仪表盘的信息反而不会出现这个问题。针对这个问题,像DAgger这种不断增加人工标注的方法就不能解决了,因为即使进行再多的标注,因果性的问题依旧会造成结构性的困难。
在这里插入图片描述

Multimodal behavior

有时候在一个问题中可能存在多个可行解,比如在下图中有一颗树,专家可以往左边走,也可以往右边走。而当我们的输出值时连续值,使用高斯分布或者其他分布进行策略选择的时候,就可能导致我们最终的决策时直直地向前走。

在这里插入图片描述

针对这个问题一般存在三种方法:

  • Output mixture of Gaussians

    这个想法相对比较简单也比较直观,也就是我们在输出时不是输出一个高斯分布,而是对多峰进行模拟,这样就不会出现前面所说的那种“中和”的情况。但是,这种方法会随着问题维度的上升复杂度呈现指数级上升。

    image-20210222151202879

  • Latent variable models

    这种方法最终的输出还是一个高斯分布,只不过在输入上加入一些隐变量,这个隐变量我觉得也可以直接理解为噪声,噪声有用的原因在于对原数据产生了扰动,使得原先多峰的label变成了单峰的label,从而缓解多峰的问题,这种方法更加expressive,但是实现起来比较困难。在具体实现时,会有以下技巧:

    • Conditional variational autoencoder
    • Normalizing flow/realNVP
    • Stein variational gradient descent
  • Autoregressive discretization

    这种方式采用的是将动作空间离散化的方式,如果连续的action有很多个维度,则可以一个维度一个维度地输出。首先得到第一个维度的action,然后将它作为第二个维度的输出,并得到第二个维度的输出,如此循环。这种方法可以卡成是前面两种方法的折中,既有比较强的表达能力,实现起来也不会太复杂。

在这里插入图片描述

Limited Data
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值