样本利用率低
样本效率低下,即使是目前最好的训练方法,也需要大量的训练数据及大量的时间,尤其是在现实环境中训练的成本高昂,无法进行长时间训练
模拟器难以和世界对齐
主要瓶颈还是模拟器问题,就是如何将模拟器和现实世界对齐,尽可能覆盖各种可能性,这个我觉得挺难的。你会发现但凡模拟器对现实场景的覆盖达到100%的例子,RL都是秒杀人类的,比如AlphaGo,比如玩游戏。
如果只关心最终表现,许多问题都可以用强化学习以外的方法更好地解决
强化学习的普遍性很强,但是在大多数情况下,我们可以根据问题选择有针对性的算法,尽管该算法对于其他类型的问题可能不适用,但是更多情况下我们只需要考虑当前的问题对症下药达到更好的效果,所以强化学习在很多问题上都不如针对该问题设计的算法
奖励函数很难被定义
为了让RL做正确的事,奖励函数必须准确地与想要实现的功能相匹配。而设计一个可以让智能体学到想要的行为的奖励函数并不容易。
有形的奖励通常更容易学习,因为即使智能体还没有学到可以完整解决问题的策略依旧会获得一些反馈。
比如稀疏奖励只能目标状态下给予奖励,而在其他任何地方都没有奖励,类似于离散,智能体很可能找不到优化的方向。而有形的奖励类似于连续,智能体在任何地方都能较快的找到增加奖励的方向。
不幸的是,丰厚的报酬可能会影响学习。
比如在赛艇游戏中,稀疏的奖励是在给定时间内完成将获得+1奖励,否则获得0奖励,于是有人在途中添加一些检查点,也增加powerups来让赛艇更快地达到目标,但事实上赛艇不再想着完成比赛,而是在这些powerups中往复地走来达到更高的奖励。
又比如为了更快地达到目标而给智能体向右走加一个+3奖励,但是智能体可能学到的是往复绕圈,毕竟到达目标也只有100奖励就结束了,而绕一个圈就会有+2奖励,可以一直绕。
总之,稀疏的奖励会让智能体学习变得困难,但如果增加很多手动设计的奖励,如果奖励设计的不好,那么智能体可能学出完全不是想要的行为。
可以把model-free问题理解成一个黑盒问题,我们除了告诉智能体什么时候会得+1奖励,什么时候会得-1奖励,其他什么都不知道,智能体有可能会学到一个获得更高奖励的方式,但不是我们想要的方式
为了解决这个问题我们有两种方式,一种是稀疏奖励,只有达到Goal才给奖励,但问题是有时候智能体可以学会到达Goal的方式,有时候不行,另一种方式是奖励函数重塑reward shaping,添加新的奖励,但是要非常谨慎,否则会产生眼镜蛇效应
即使有好的奖励函数,DRL也总是会陷入局部最优
探索和利用问题,如果不想停留当前的成就,就要鼓励探索,但同时有可能学出更坏的策略,
可能会过度适应环境中的怪异模式,泛化性能差
强化学习的好处是如果想在一个环境中表现出色,那么可以疯狂地拟合,但缺点是,如果想推广到其他任何环境,都可能会做不好,因为前面过拟合了前一个环境
智能体在相同的环境中学习,它们可以不断挑战彼此,并加速彼此的学习,但是如果其中的一个学习得较快,它就会过度利用较弱的那个智能体,并导致过拟合。当从对称自我博弈到多智能体环境中时,想要保证智能体以相同的速度学习是一件比较困难的事
最终的结果可能是不稳定和难以复现的
几乎所有的机器学习算法都有能够影响模型行为和学习系统的超参数,通常这些参数是手动挑选或者随机搜索得到的
监督学习比较稳定,如果对超参数做了很小的改动,最终性能并不会改变很多,但目前深度强化学习一点也不稳定
深度强化学习增加了一个新的维度:随机几率
解决随机几率的唯一方法就是在问题上投入足够多的实验来降低噪声。
在较好的训练样例上随机碰到的策略会比其他策略更快地引导学习。没有及时地遇到好的训练样本的策略会崩溃而学不到任何东西,因为它越来越坚信:它所尝试的任何偏离都会导致失败。
但是,我们又该如何看待深度强化学习的成功案例呢
除了这些成功之外,很难在现实世界中发现深度强化学习产生实际价值的案例
在目前的局限下,深度强化学习何时才能正常地工作呢
一些让学习变得更加容易的共同属性,更多地满足这些属性学习效果会更好
生成似乎无限多的经验是很容易的
拥有的数据越多,学习问题就会变得越容易。
问题被简化成了一个更简单的形式
所有研究的广泛趋势都是先去证明最小的问题上的概念,然后再去泛化。
可以将自我对抗引入到学习中的方式
这里所说的自我对抗指的是这样的游戏环境:游戏是竞争性的,两个玩家都可以被同一个智能体控制。目前,这样的环境似乎拥有最好的稳定性和最好的性能。
有一个简洁的方式来定义一个可学习的、不冒险的奖励函数
两个玩家的游戏有这样的特点:赢了得到+1 的奖励,输了得到-1 的奖励。
如果必须对奖励函数进行重塑,那么它至少是丰富的(意思就是尽量让智能体多的接收到奖励)
行动和结果之间的延迟越短,反馈回路能够越快地闭合,强化学习就越容易找到回报更好的路径。
案例研究:神经架构搜索
展望未来
一些比较合理的强化学习的未来情况:
局部最优已经足够好了
强化学习解决方案也不必获得全局最优解,只要它的局部最优解能够比人类的基线好就行了。
硬件解决一切
运行速度越快,就可以越少地关心采样低效,就可以更容易地暴力解决探索问题。
增加更多的学习信号
稀疏奖励函难以学习,因为获得的帮助信息很少。现在的解决办法有产生虚拟的正向奖励、去定义一些辅助的任务
Model-based的方法去提高样本利用率
一个好的模型可以解决一系列的问题,拥有一个比较全面的模型使得学习解决方案变得更加容易。好的世界模型可以很好地迁移到新的任务上面,而世界模型的展开可以让你想象新的体验。而且。model-based的方法的样本利用率非常高。
问题在于学习一个好模型是很困难的。
仅将强化学习用作微调步骤
第一篇 AlphaGo 论文从监督学习开始,然后在此基础上进行强化学习的微调,它可以让你使用一个更快但功能不太强大的方法来加速初始学习。可以将此视为以合理的先验(而不是随机先验)开始强化学习过程,在这种情况下,学习先验的问题可以用其他方法求解。
奖励函数是可以学习的
模仿学习和逆强化学习都是成果很丰富的领域,它们已经展示了奖励函数可以通过人类的演绎或者评估来隐式地定义。
迁移学习可以节省时间
迁移学习承诺可以利用之前任务中学习到的知识来加快新任务的学习。
好的先验知识会大大缩短学习时间
有一种观点:迁移学习是使用过去的经验来构建较好的学习其他任务所需的先验知识,强化学习算法被设计适用于任何马尔科夫决策过程,而这是泛化性的痛点来源。
深度强化学习只需要解决我们在现实生活中需要解决的任务。应该有一个现实世界的先验知识,让我们能够快速学习新的现实世界的任务,代价是在非现实的任务上学习更慢,但这是一个完全可以接受的权衡。
困难在于设计这样的一个现实世界先验知识是很难的。
元学习提供了一种数据驱动的方法来生成合理的先验知识。例如,如果我想使用强化学习进行仓库导航,我会非常好奇如何使用元学习事先学习一个好的导航,然后针对机器人将要部署到的特定仓库对这个先验知识进行微调。
更困难的环境可能会使问题变得更容易
如果可以通过增加一些任务变体使得任务变得非常困难,实际上你可以使学习变得更加容易,因为策略不能在不损失所有其他环境中的性能的情况下过拟合任何一个环境。