有监督学习还是离线强化(offline-RL)?

有监督学习还是离线强化?

文章目录

  • 有监督学习还是离线强化?
    • 前言:
      • 为什么我的强化学习这么智障?
    • [Decisions from Data: How Offline Reinforcement Learning Will Change How We Use Machine Learning](https://medium.com/@sergey.levine/decisions-from-data-how-offline-reinforcement-learning-will-change-how-we-use-ml-24d98cb069b0)
    • 深度学习和强化学习的区别
    • offline和online的区别。
    • 总结:

前言:

为什么我的强化学习这么智障?

相信不少搞强化的同学,都有一个疑惑,强化到底有什么好的?

  1. 探索成本高,要么瞎探索,要么陷入局部最优
  2. 学习时间长,仿真实验一天起步,真实实验就更恐怖了。
  3. 性能离谱,尤其是对于传统方法能解决的问题,基本上强化学习的上限就是传统方法的精度。比如抓取实验,学了好几天的机械臂,拿一个眼面前的物块,还颤巍巍的,跟个帕金森似的~
  4. 对随机种子敏感。有些深度学习对超参敏感,还能理解,但是对随机种子敏感是什么意思?就是说,同样的超参数,你换个随机种子,对最终性能的影响,可能是天翻地覆。很多工作,会把baseline的随机种子选为较差的一批随机种子,把ours选为较好的,于是整篇工作效果拔群。

就这?就这?就这?
说好的强化学习是通往通用人工智能(AGI)的关键呢?
说好的Alphago大败李世石呢?
说好的Alphastar称霸星际争霸呢?
为什么我的强化学习如此智障…

今天我就来看看Sergey Levine在九月份写的一篇文章,看看用强化学习做决策好,还是用深度学习做预测后,人类决策好?

Decisions from Data: How Offline Reinforcement Learning Will Change How We Use Machine Learning

数据决策:离线强化学习将如何改变我们使用机器学习的方式

(这篇博客拖好久了,最近也没心情详细翻译了,简单概述一下这篇文章的主要思想吧,具体内容大家直接看大佬的原文就挺好)

深度学习和强化学习的区别

对于决策任务,深度学习和强化学习的区别:

  1. 深度学习的作用是做预测,提取特征,在给定预测结果的基础上,专家们可以设计一系列规则,来做决策。但是一般来说,这个决策都类似于if判断形式的单步决策。很难处理类马尔科夫决策过程。
  2. 强化学习本身就是处理类马尔科夫链,对于一个任务,它可以考虑多步全局最优,考虑到当前步决策对后期的影响。
    所以针对这个点,我们可以看到,哪些决策任务适合强化学习,哪些任务适合深度学习。

如果你的任务就是单步决策,能够有清楚明白的阈值设定,且当前决策对后期结果影响不太明显,那就用深度学习。
比如在物块抓取任务中,拍一张图,检测出物块的三维坐标,提供给机械臂,直接调用自带的movej(pose)函数,抓取完成。
如果是复杂的多步任务,比如推物块,你找到物块的坐标还不算,还得想办法和物块接触,让它随着你的推动,达到指定的位置。这个就不是简单的if判断能解决的问题了。你从正面推,和侧面推,明显会导致物块移动到不同的位置,复杂的问题,必须要不断的尝试才能探索出一个最优策略。

offline和online的区别。

本来强化只分为off-policy和on-policy两种,区别在于策略网络和更新数据是否一致,off-policy用来更新的数据,可以是其他策略,或者过去策略采集的,on-policy的拿来更新的数据是当前策略采集的。一般来说off-policy可以利用过去的数据,可以有效的提高数据的利用效率。
但是这还不够!
这个off-policy在用了过去的、其他的数据之后,仍然需要和环境进行交互!
而这个交互需要大量的时间,而且这些数据等智能体学习结束,就销毁了,实在是浪费。也不利于强化学习的公平对比,很多实验无法复现,大伙儿的环境稍微有些区别,结果就天差地别。

大佬们想着,为什么不能直接像深度学习的image-net那样,整一个海量、完全离线、开源的离线数据集,这样对于那些没有仿真环境,没有真实实验器材的研究者(比如说机器人,比如说自动驾驶)来说,都可以上手强化学习了。

这里面有两个问题:

  1. 有了这些数据,为什么不用深度学习做决策,为什么不用模仿学习直接根据state–> action做有监督学习呢?不用深度学习前面已经说了,不适合多步决策。模仿学习,需要专家数据,泛化性差,在高维连续空间中,遇到未知的状态,一般都处理不了。
  2. 强化学习能胜任吗?目前的情况并不乐观。我看过两篇offline的paper,一篇是真 离线强化学习《An Optimistic Perspective on Offline Reinforcement Learning》阅读笔记,一篇是上篇文章diss的BCQ,就很离谱。第一篇文章直接说BCQ的那些花里胡哨的设置没啥用。好的吧,我们来看看BCQ尝试解决哪些问题,也是levine大佬重点阐述的问题——

由于Q(s_, a_)的值没有真实值,只能通过网络去拟合,因此如果预测误差过大,且不能通过 环境交互进行纠正,那么误差累计,会导致最终性能下降。所以要约束采样数据必须在离线数据率内!一般采样的方法是训练一个VAE,采样出来的(s,a)对,都在离线数据分布中。

这个思想在后期好几篇文章继承了,也做了不少的优化,最新的算法应该比BCQ性能好很多,但是我没有细看,也不确定。

总结:

离线强化学习,是一个趋势,这非常适合大厂,他们手里拥有大量的数据,但是这些数据,该怎么利用起来?
前些天看到滴滴的HR招离线强化的实习生,base在北京,加上我太菜了,也就没争取了。
直观上理解,他们是很难直接在真实场景应用强化学习瞎训练的,万一随便探索出一个鬼策略,损失可就太大了。
要是能把海量的离线数据利用起来,学一个推荐or规划or自动驾驶的策略,性能比传统的看起来好,还是有可能小范围实验一下的。

你可能感兴趣的:(DRL,学习笔记,offline,BCQ,Levine,RL,offline-RL)