雷锋网(公众号:雷锋网) AI 科技评论按:本文来自斯坦福大学博士生 Andrey Kurenkov 在 The Gradient 上发表的文章。
在本文中,我们将讨论人工智能的一个核心领域——强化学习——的局限性。
在这个过程中,起初我们将通过一个有趣的例子提出我们要讨论的问题,然后向大家介绍一套方法引入深度学习相关的先验知识和说明,最终得出一个重要结论。
现在让我们进入第一部分,你将了解到什么是强化学习,以及为什么说强化学习(或者至少说我们称之为「纯强化学习」的版本,我们将在接下来的文章中定义「纯强化学习」的概念)从根本上说是有缺陷的。这个部分可能包含一些人工智能从业者已经十分熟悉的解释,他们可以直接跳过该部分。但是请一定要重视最近关于「非纯强化学习」的研究进展,我们认为这代表着对纯强化学习的根本缺陷的改进。但是现在,让我们一起来看看一个有趣的例子。
案例:棋盘游戏
想象一下,你的朋友正邀请你参与一个你从未玩过的棋盘游戏。假设在你至今为止的岁月中,你还没接触过这种棋盘游戏,也从未玩过任何类型的游戏。你的朋友向你介绍了规则,说明了什么是「有效移动」。但是没有说明它们的意义是什么,或者如何才能得分。所以,你在不能问更多的问题,也无法获得更多的解释的情况下开始玩这个游戏。可想而知,一开始,你输掉了游戏。接着,你开始了屡战屡败的尝试,一次一次玩这个游戏,一次一次地输掉…… 然而,幸运的是,你渐渐地在失败中领悟到了一些有用的模式;此时,尽管你仍然会输掉游戏,但是并不会那么快地被秒杀,能多挣扎一会…… 接着,你越挫越勇,在经历了长达数周的游戏时间后,你甚至能勉强获胜了!
这个故事看上去有些傻,是吧?你会问:为什么你不直接问朋友游戏的目标是什么?正确的游戏方法是什么?然而,上面这一段的故事实际上描述了如今大多数强化学习方法仍旧是如何工作的。
强化学习(reinforcement learning)是人工智能的子领域之一。在强化学习框架中,一个智能体(agent)与环境(environment)进行交互,从而学习到它(智能体)在任意给定的环境中的状态(state)下需要选择怎样的动作(action)才能最大化它的长期奖励(reward)。在棋盘游戏的例子中,这意味着你(智能体)需要与棋盘(环境)进行交互,从而学习到你(智能体)在每一轮棋盘(环境)的游戏配置(状态)中需要采取什么样的移动策略(动作)才能够最大化你最终的得分(奖励)。
在深度学习的经典模型中,智能体一开始只知道那些动作是可以采取的。他对所处的世界中的先验知识一无所知,只能通过与环境交互来学习这种技能,并在每次采用动作之后得到奖励。缺乏先验知识意味着智能体需要从头开始学习,我们将这种从头开始学习的方法称为「纯强化学习」。纯强化学习如今主要被用于解决双陆棋和围棋这样的游戏问题,以及机器人和其他领域的各种各样的问题。
在棋盘游戏的例子中,一「节」代表一个完整的游戏过程。在这个例子以及许多的强化学习问题中,只有最终的状态有一个非零的奖励。
近年来,深度学习给强化学习的研究注入了新的活力,但最基本的模型并没有发生太大的变化;毕竟,这种从头开始学习的方法可以追溯到强化学习作为一个研究领域被创建的伊始,并且通过其最基本的方程(贝尔曼方程)进行编码。
那么,一个基本的问题来了:如果纯强化学习乍一看并没有这么大的意义,那么设计一个基于纯强化学习的人工智能模型是否合理呢?如果让一个人通过纯强化学习的方式学习一个新的棋盘游戏是如此荒谬的话,难道我们不应该想想,这对于人工智能体来说不是一种存在缺陷的学习框架吗?在既没有先验的经验又没有更高层次的指导的情况下,仅仅基于奖励信号就开始学习新的技能真的有意义吗?
先验经验和高层次的指导在用于形式化定义强化学习的经典的方程式中均没有得到体现,而且无论是隐式还是显式地改变这些方程,都可能对我们用来训练用于所有的强化学习的人工智能算法都有很大的影响(这些算法已经远远超出了棋盘游戏的范畴,从机器人技术到资源分配问题)。换句话说,这是一个很大的问题,为了得到这个问题的答案,你需要阅读下面两篇文章:
1. 在第一部分(本文)中,我们首先将指出,纯深度学习的主要成果并不像他们看上去那么令人印象深刻。接着,我们将进一步说明,在纯强化学习框架下不太可能实现更复杂的成果,这是因为它对人工智能体强加了诸多限制。
2. 在第二部分中,我们将概述人工智能技术中能够解决这种限制的不同方法(主要是元学习和零样本学习)。最后,我们将调查到目前为止,基于这些方法的具有里程碑意义的工作,并且总结出这项工作对强化学习和整个人工智能研究领域意味着什么。
几乎人人认同纯强化学习是强化学习的基本形式。但他们真的应该这么认为吗?
纯强化学习有意义吗?
对于这个问题,许多人下意识的反应大概是:「当然,使用纯强化学习还是很有意义的——人工智能体并不是人类,所以并不需要像我们一样学习,况且纯强化学习已经被证明可以解决各种各样复杂的问题。 」
我不同意以上观点。根据定义,人工智能研究涉及到使机器能够做一些目前只有人类和动物才能做到的事情。因此,将人工智能与人类智能进行比较是合适的。至于那些目前使用纯强化学习解决的问题,有人给出了一些重要的忠告,但是往往被人忽视:这些问题其实往往并不像看上去那么复杂。
也许,对于很多人来说,这种说法是非常令人惊讶的,因为解决这些问题是目前人工智能最广为人知的成就。说实话,尽管这些成就确实是很伟大的,但我仍然认为这些涉及到的问题并不想他们看上去那么复杂。在讨论为什么我们这么说之前,我们不妨列举一下这些成就,并指出为什么这些成就是完全配得上这种赞扬的:
1. DQN(深度 Q 学习网络):短短5 年前,DeepMind 的一项研究项目大大提升了人们对强化学习的兴趣,该项目表明,将深度学习与纯强化学习和一些新的创意相结合可以解决比以往任何时候都要更加复杂的问题。
毫不夸张地说,DQN 是一种以一己之力重新激发广大研究人员对强化学习的兴趣的模型。尽管它只包含了一些相对简单的创新,但是这些创新被证明对于使深度强化学习更加实用非常重要。
尽管看起来很简单,但是从游戏画面的像素输入中学习如何玩这个游戏在十年前还是不可想象的。
2. AlphaGo Zero 以及 AlphaZero:学习如何以超越所有人类的水平下围棋、象棋和将棋的纯强化学习模型。科普一下,AlphaGo Zero 是DeepMind 开发出的 AlphaGo 的继任者(AlphaGo 是第一个击败人类围棋冠军的程序)。不同于原始的通过监督学习和强化学习的结合进行学习的AlphaGo,AlphaGo Zero 纯粹通过强化学习和自我对弈进行学习。因此,它在整体上紧密地遵循纯强化学习的方法(智能体从完全没有任何先验知识的情况开始,从奖励信号中学习知识),尽管它也使用一个事先被提供的模型(游戏规则),并且通过自我对弈以可靠的、可持续的方式不断提升。雷锋网 AI 科技评论早先也有文章进行介绍「阿尔法狗」再进化!通用算法AlphaZero再攻克几种棋又有何难!。
由于AlphaGo Zero 不再从人类的经验中学习如何获得成功,在许多人眼中,它比 AlphaGo 对这个游戏的改变更大。接着,AlphaZero 应运而生,它是一个更加普适的版本,被证明不仅能够处理围棋任务,还能对象棋、将棋进行学习。这是人们第一次用同一个算法来攻破象棋和围棋,而且它并没有像「深蓝」和原始的 AlphaGo 那样专门为某种游戏对模型进行裁剪。基于上述原因,AlphaGo Zero 和 AlphaZero 无疑是具有里程碑意义的、令人激动的成就(DeepMind 的媒体宣传也超赞)。
李世石败给了Alpha,这是一个历史性的时刻。
3. OpenAI 的 Dota 机器人:用深度强化学习训练的人工智能体能在风靡全球而且非常复杂的多人对抗游戏——Dota2 中击败人类玩家。2017 年,OpenAI 成功地在有限制的 1v1 版本的 Dota2 比赛中击败人类职业玩家(Dendi)就足以令人印象深刻了,但是与他们最近取得的成就相比,这根本算不了什么,要知道,他们最近成功地在复杂得多的 5v5 版本的游戏中战胜了人类玩家组成的队伍。它也是 AlphaGo Zero 的继承者,因为它也不需要任何人类知识,完全通过自我对弈进行训练。
毫无疑问,能够在这个以团队合作为基础、极其复杂的游戏中获得出色的表现,远远比之前玩转 Atari 游戏和击败职业围棋选手所取得的成就更加震撼。更重要的是,这是在没有做出任何重大的算法改进的情况下完成的。这个工作之所以能取得成功,要归功于其令人震惊的计算量,并且使用了一个已经十分成熟的纯强化学习算法,以及深度学习技术。在人工智能社区中,人们普遍认为这是一个令人印象深刻的成就,也是强化学习的一系列重要的里程碑中的一个重要进展。
正如你所看到的,纯强化学习已经取得了很大的成就。但是,现在让我们更仔细地研究一下,看看为什么说这些成就没有他们看上去的那么伟大。
强化学习近期成果的复杂度分析
让我们从DQN 开始讨论这个问题。
DQN 可以在许多 Atari 游戏中达到超乎常人的游戏水平,但远非所有游戏。一般来说,它只能在不需要推理和记忆的条件反射类的游戏中取得好的表现。即使在5 年后,也没有一种纯强化学习算法能够攻破需要推理和记忆的游戏。相反,凡是能够在这些任务上表现优秀的模型,要么使用了先验信息指导(https://arxiv.org/abs/1704.05539 )要么使用了演示(https://blog.openai.com/learning-montezumas-revenge-from-a-single-demonstration/ ),就像我们在之前的棋盘游戏的例子中提到的那样起作用。
虽然 DQN 在打砖块这样的游戏中性能不俗,但是它仍然不能处理相对简单的游戏,比如蒙特祖玛的复仇。
即使在那些 DQN 可以取得极其优秀的性能的游戏中,与人类相比,它还是需要大量的时间和经验去进行学习。
建造像人一样学习和思考的机器
AlphaGo Zero 和 AlphaZero 也存在同样的局限性。你知道,我们已经为围棋任务提供了最简单的人工智能问题的环境,使其维持在目前这种难度级别上。也就是说,围棋问题具备一些让学习任务变得简单的特性:即围棋任务具有确定性、离散型、静态性,而且是完全可观察的、信息完全可知的单智能体任务,可以被分成一节一节,开销较小、易于模拟、易于计分…… 而围棋问题唯一的挑战就是:巨大的分支空间。
一个用于简单说明围棋任务类别的 Venn 图
因此,围棋可能是最困难(搜索空间巨大)的简单(限制较多)问题,但归根到底它还是一个简单问题。而且,那些仅仅根据 AlphaGo 的成功就预测说通用人工智能(AGI)的实现近在咫尺的言论可以被直接忽略掉!由于所有上面提到的原因,更多的研究人员意识到:现实世界远比围棋这样的简单游戏复杂得多。尽管 AlphaGo 的成功令人印象深刻,但其所有的变体(AlphaGo Zero,AlphaZero等)基本上仍然是类似于深蓝的程序:这是一个开销巨大的系统,经过了多年的设计和制造,投入了数百万美元的资金,而这一切都纯粹是为了玩一个抽象的棋盘游戏——除此之外别无其它意义。
至于 Dota 嘛。确实,这是一个远比围棋更加复杂的游戏,而且并不像围棋那样有很多可以限制它、使其变得简单的属性。Dota 游戏的过程不是离散的、静态的,游戏的局势并不是完全可观察的,智能体不是单一的,游戏过程也不能被氛围一个个回合,这确实是一类非常具有挑战性的问题。但从本质上说,Dota 仍然可以被视为一个通过易用的 API 控制的简单模拟游戏,它完全消除了对与感知和运动控制的需求。这样一来,与我们每天在现实世界中通过学习去解决问题的真实复杂度相比,这样的游戏最终还是很简单的。而且,Dota 机器人仍然和 AlphaGo 一样,需要大量的投资和许多工程师的参与才能得出一种使用巨量时间和经验解决问题的算法(需要长达数千年的游戏体验时间进行训练,并且需要使用多达 256 个的GPU 和 128,000 个CPU 核心)。
因此,尽管我们已经取得了巨大的成就,我们对于它们还是要有一个清醒的认识。
仅仅因为纯强化学习让我们取得了现在的成果就认为它是完美无缺的是不对的!尽管如此,我们必须思考——纯强化学习是第一个能够实现这些成就的方法,但它是最好的方法吗?
纯强化学习的根本缺陷——从头开始学习
是否有更好的方法让人工智能体学会下围棋和玩 Dota 呢?事实上,「AlphaGo Zero」这个名字指的就是模型从头开始学习下围棋的意思。现在,我们不妨回想一下棋盘游戏的例子。在没有任何解释的情况下试图从头学习棋盘游戏是很荒谬的,对吗?那么,为什么要借助人工智能技术努力实现这个目标呢?
事实上,如果你试图学习的棋盘游戏是围棋,你将如何开始学习它呢?首先,你需要阅读规则,学习一些高层次的策略,回想一下你在过去如何玩类似的游戏,想办法得到一些建议…是吗?确实如此,至少有一部分原因正是由于 AlphaGo Zero 和 OpenAI 的 Dota 机器人需要从头开始训练的限制使得它们与人类的学习相比并没有那么令人印象深刻:它们依赖于比人类多观察好几个数量级的游戏,并且使用远远比任何人类更多的纯粹计算能力。
AlphaGo Zero 的围棋水平提升的过程。请注意,它花费了一整天的训练时间、也就是相当于一个人数千辈子的游戏时间达到了埃洛等级分为 0 的水准(即使是最弱的人类玩家也能轻易得到这个分数)。图片来自 DeepMind 的 AlphaGo Zero 博客的文章。
公平地说,纯强化学习技术对于一些「范围较窄」的任务来说是有效的,例如:连续控制(https://arxiv.org/pdf/1806.09460.pdf )或更近期的 Dota 和星际争霸这样的游戏。然而,随着深度学习大获成功,人工智能研究社区作为一个整体正在试图解决更加复杂的任务,这些任务必须处理真实世界中没有限制的、开放的复杂问题(例如,驾驶汽车或进行对话)。对于这些范围并不那么窄的任务(即大多数人工智能需要解决的问题),同时也为了整个人工智能社区在未来的发展,对超越纯强化学习的方法进行研究是十分必要的。
所以,让我们继续讨论我们提到过的问题:纯强化学习,以及从通常意义上来说从头学习的思路,对范围不窄/复杂的任务来说是否是正确的解决方法?
我们应该坚持纯强化学习吗?
这个问题的一个答案可能是:「是的,除了像围棋和Dota 这样的任务,纯强化学习也是解决其他问题的正确方法。虽然在棋类游戏的环境下没有意义,「从头开始」学习也是非常具有普适的意义的。而且,除了人类所具有的灵感,从头开始学习是有意义的,这样智能体不会有任何先入为主的知识,而且也能达到比人类更高的水平(就像AlphaGo Zero 一样)。」
让我从这段话最后的部分开始,「忽略人类的灵感,在通用的人工智能的背景下考虑从头开始学习的好处。「从头开始」进行学习的理由是」:事先假定的替代品——将人类的直觉硬编码到模型中——可能通过不必要的限定限制了模型的准确率,或者甚至通过错误的直觉降低了模型的性能。随着深度学习方法的成功,这种观点已经成为了主流,这些方法可以学习具有数以百万计的参数的「端到端」模型,对数量惊人的数据进行训练,而且只用到了很少的先验知识(http://www.abigailsee.com/2018/02/21/deep-learning-structure-and-innate-priors.html )。
老式的传统语音识别和端到端的深度学习方法的示意图。后者的性能更好,而且成为了目前最先进的语音识别的基础。
事情是这样的:引入先验知识或指导并不一定需要在进行学习的智能体上强加许多给予人类直觉的限制结构。换句话说,可以告知学习的智能体或模型有关即将处理的任务的信息,而不限制它通过深度学习方式进行学习的能力(即主要通过数据传递信息,而不像深蓝和之前的专家系统里那样人为规定)。
在不久的将来,我们将看到能够让我们做到这一点的技术案例。但是重要的是,对于大多数的人工智能问题,不从头开始学习并不一定会限制智能体可以以任何方式进行学习的能力。对于 AlphaGo Zero 这样的算法,没有明确的理由过分强调必须从头开始学习,因为它可能会被人类知识所引导(就像最初的 AlphaGo 一样),或者事先从其它棋盘游戏中学到知识,并且仍然能够收敛到同样的超乎常人的水平。我们应该很快就看到类似这样的具体技术案例。
即使你不在乎这些,就是想要从头开始训练,那么纯强化学习是否就是最好的方法呢?给这个问题作答曾经可以不需要任何思考。在梯度无关的优化问题中,纯强化学习是你可以选择的最有条理的并且最值得信赖的方法。但最近的许多论文都对这种立场提出了严重的质疑,它们认为相对简单的(而且广泛不受认可的)基于进化策略的方法似乎也同样适用于纯强化学习已经被经常用来测试的同类型的对比基准:
-
简单的随机搜索提供了一种对强化学习具有竞争力的方法(https://arxiv.org/abs/1803.07055 )
-
深度神经进化:遗传算法是训练用于强化学习的深度神经网络的一种具有竞争力的选项(https://arxiv.org/abs/1712.06567 )
通过随机搜索找到的在 Frostbite 中表现优异的智能体的例子。详情请见对于该策略的变现的描述。它在该轮中的最终得分为3,620,这比 DQN,A3C 和 ES 算法得到的分数都高,尽管并不像 GA(遗传算法)得到的分数那么高。图片来源:https://arxiv.org/abs/1712.06567
-
进化策略作为一种可伸缩的强化学习的替代品(https://arxiv.org/abs/1703.03864 )
-
实现连续控制的普适性和简易性(https://arxiv.org/abs/1703.02660 )
理论和实践优化算法的领军研究者、论文「简单的随机搜索提供了一种对强化学习具有竞争力的方」的作者之一 Ben Recht 很好的总结了上述所有观点(http://www.argmin.net/2018/03/20/mujocoloco/ ):
我们已经看到,随机搜索在简单的线性问题上效果很好,并且显示出比策略梯度算法等强化学习算法更好的性能。但是随机搜索是否会随着我们开始处理更难的问题而崩溃呢?先说结论:并没有!
所以,人们至今还不清楚纯强化学习是否是从头开始学习的正确方法。但是,让我们回到人类从头开始进行学习的问题上。人们有没有在没有给定任何信息(除了作为技能的一部分可采取的动作)的情况下开始学习一项复杂的新技能(例如组装新的宜家家居或甚至是开车)?没有,不是吗?
也许对于一些非常基础和普遍的问题(比如年幼的婴儿所面对的那些问题),从头开始学习,进行纯强化学习是很有意义的,因为这些问题是如此广泛。但是对于人工智能中的大多数问题来说,从头开始学习并没有明显的好处:我们知道我们想要人工智能体学习到什么,并且能够为其提供这种技能的演示或指导。事实上,从头开始学习是许多广泛被认同(https://www.wired.com/story/greedy-brittle-opaque-and-shallow-the-downsides-to-deep-learning/ )的目前人工智能和深度学习具有的限制的主要原因:
-
目前的人工智能非常缺乏数据(即样本效率低下),在大多数情况下,需要大量的数据才能使最先进的人工智能方法变得有效。这对纯强化学习来说尤其糟糕。回想一下,AlphaGo Zero 需要进行数以百万次计的围棋游戏才能得到为 0 的埃洛等级分,这是大多数人稍加努力就可以达到的分数。从定义上说,从头学习可能是样本效率最低的方法。
-
目前的人工智能系统是不透明的,在大多数情况下,我们对人工智能算法能学到什么、它将如何工作只有高层次的直觉。对于大多数人工智能问题来说,我们希望算法是可预测、可解释的。一个在只给定低层次的奖励信号的、从头开始学习想要的知识的大的神经网络,或者一个环境模型(就像 AlphaGo Zero 那样工作),可能是解释性和可预测性最差的方法。
-
目前的人工智能应用的范围很窄,在大多情况下,我们建立的人工智能模型只能完成一个很小的范围内的任务,而且很容易就失效。从头开始学习每一项技能限制了模型学习除了一个特定的任务之外的任意任务的能力。
-
目前的人工智能是脆弱的,大多数情况下,我们的人工智能模型只是通过大量的数据获得了泛化到不可见的输入上的能力。甚至在以后仍然是很容易失效的。
因此,我们更倾向于知道我们究竟想要人工智能体学习到什么。如果人工智能体是一个人类,我们可以向他解释这个任务,还可能提供一些提示。但是人工智能体终究不是人,那么我们还能为一个人工智能体做这些事吗?事实证明,我们可以通过许多方法做到。欲知方法为何,且听下回分解(https://thegradient.pub/how-to-fix-rl/)。
via The Gradient,雷锋网 AI 科技评论编译
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/134264.html