另一种历史悠久的自下而上的技术是强化学习。在20世纪50年代,斯金纳(B. F. Skinner)在约翰·沃森(John Watson)的研究基础上,通过给鸽子安排特定的奖惩活动,控制鸽子去执行复杂的动作——甚至指示空射导弹射向目标。其基本理念是,鸽子得到奖励的行为会重复,而受到惩罚的行为不会重复,直到想要鸽子去做的行为做成了。即便是在斯金纳的时代,这个简单的过程,一遍又一遍地重复,也可能会导致复杂的行为,计算机被设定成一次又一次地执行简单的操作,操作规模之大超出了人类的想象,计算系统可以通过这种方式学习非常复杂的技能。
▲强化学习(来源于网络)
例如,谷歌的DeepMind研究人员将深度学习和强化学习结合起来,教计算机玩雅达利(Atari)的电子游戏,计算机根本不知道这些游戏是怎么玩的,一开始,它的行为是随机的,它也仅仅得到屏幕在每个时刻的样子以及它的得分情况方面的信息,深度学习帮助它解释屏幕上的特征,强化学习则激励系统获得更高的分数,这台计算机很擅长玩其中的几个游戏,但它也完全玩不好其他的对人类而言易如反掌的游戏。
通过以类似的方式结合使用深度学习和强化学习,DeepMind的AlphaZero程序取得了成功,先后在国际象棋和围棋比赛中击败人类棋手,尽管它只具备基本的游戏规则知识和一些谋划能力。AlphaZero还有一个有趣的特点:它可以与自己进行数亿次的对弈,在此过程中,它会清除导致落败的错误,同时重复和阐明带来胜利的策略,这种系统,以及其他涉及到生成对抗网络技术的系统,会在生成数据的同时也在观察数据。
当你有计算能力将这些技术应用于非常庞大的数据集、数以百万计的电子邮件或Instagram图片或者语音记录时,你就得以解决以前看起来非常困难的问题,这就是计算机科学中令人兴奋的地方。
但是值得记住的是,这些问题——比如识别图片里的猫或者像“Siri”这样的口头词——对于一个蹒跚学步的人类来说是轻而易举的,计算机科学最有趣的发现之一是,对我们来说十分容易的问题(如识别猫)对计算机来说却很难——比下国际象棋或围棋困难得多。计算机需要数以百万计的例子来对对象进行分类,而我们只需用几个例子就可以对这些对象进行分类。
自上而下的贝叶斯模型自上而下的方法在早期的人工智能发展中扮演了重要角色,在2000年,它也经历了一次复兴,以概率模型或贝叶斯生成模型的形式出现。
使用这种方法的早期尝试面临两种问题。首先,大多数的例证模式一般可以用许多不同的假设来解释:你来自期刊编辑的电子邮件可能是非垃圾邮件,只是看起来不太可能。其次,生成式模型所使用的概念从何而来?柏拉图和乔姆斯基说,你生来就有这些东西,但是我们如何解释我们是如何学习最新的科学概念的呢?小孩子又是如何理解恐龙和宇宙飞船的呢?
贝叶斯模型将生成式模型和假设检验与概率论相结合,旨在解决这两个问题。贝叶斯模型让你计算出在给定的数据下,某一特定假设成立的可能性,通过对我们已经拥有的模型进行小的系统性调整,并根据数据对其进行检验,我们有时可以从旧的概念和模型中创建新的概念和模型,但是这些优势被其他的问题所抵消,贝叶斯技术可以帮助你选择两个假设中哪个更有可能,但几乎总是有大量的潜在假设,没有一个系统可以有效地全盘考虑它们。
▲贝叶斯模型(来源于网络)
纽约大学的布伦登·莱克(Brenden Lake)和他的同事们用这种自上而下的方法解决了另一个对人类而言很简单,但对计算机非常困难的问题:识别不熟悉的手写字符。看看日本画卷上的一个字,即使你以前从未见过它,你也可以分辨出它是否与其他日本画卷上的字符相似或不同,你可能能够画出它来,甚至可以根据你看到的这个字符设计出一个虚假的日本字符。
用于识别手写字符的自上而下方法是,给计算机就每个字符提供数千个例子,并让计算机提取出显著的特征,而莱克团队则是给这个程序提供一个字符书写过程的通用模型:笔画要么向右,要么向左,完成一个笔画以后,开始写另一个,等等,当程序看到一个特定的字符时,它可以推断出最可能导致这个字符生成的笔画顺序——就像你基于垃圾邮件形成过程推断出你的邮件可能是垃圾邮件一样,然后它就可以判断一个新字符是来自于这个笔画顺序还是来自于另一个不同的笔画顺序,它自己也可以产生一组类似的笔画。
这个程序比应用于完全相同的数据的深度学习程序要有效得多,而且它切实反映了人类的行动过程。
这两种机器学习方法各有优缺点,在自下而上的方法中,程序一开始并不需要太多的知识,但是它需要大量的数据,并且只能以限定的方式进行归纳,在自上而下的方法中,程序可以从几个示例中学习,并做出更广泛、更多样的归纳,但是你需要在开始时为其灌输更多的东西,许多研究人员目前正试图将这两种方法结合起来,利用深度学习来实现贝叶斯推理。
人工智能最近的成功在一定程度上是源于那些旧思想的延伸,但更重要的是,多亏了互联网,我们有了更多的数据,多亏了摩尔定律,我们有了更多的计算能力来应用那些数据。
此外,一个未被重视的事实是,我们所拥有的数据已经被人类整理和处理过了,发布到网上的猫图是典型的猫的图片——人类已经选择的“好”图片,谷歌翻译之所以好用,是因为它利用了数以百万计的人工翻译,将其归纳应用到新的文本上,而不是真正理解句子本身。
儿童的学习方法与机器有何不同?然而,关于儿童,真正值得注意的是,他们在某种程度上结合了每一种机器学习方法的最佳特征,并对它们完成巨大的超越。
在过去的15年里,发展主义者一直在探究孩子们从数据中学习结构的方式,四岁的孩子只需要像自上而下的系统那样从一两个数据例子中归纳出非常不同的概念,就可以学习,但是他们也可以从数据本身学习新的概念和模型,就像自下而上的系统一样。
例如,在实验室里,研究人员给孩子们一个“布利克特探测器”——一种他们从未见过的新机器,它是一个盒子,当你把特定的物体放在上面时,它就会发光并播放音乐,研究人员只给孩子们举了一两个例子来说明这个机器是如何运转的,告诉他们,放两个红色的方块在上面就可以让它运转,放一个绿色方块和一个黄色方块则不行。
即使是18个月大的婴儿也能立刻明白使得它运转的基本原理:两个方块必须是相同的。他们将这一原理推广到新的例子中:例如,他们会选择两个形状相同的物体来使得机器运转。在其他的实验中,研究人员已经证明,孩子们甚至可以弄明白,是某种隐藏的无形属性让机器得以运转,或者是机器是基于某种抽象的逻辑原理运转的。
你也可以在孩子们的日常学习中看出这一点。即使数据相对较少,幼儿也能像成人科学家那样迅速地学习抽象而直观的生物学、物理学和心理学理论。
近年来,无论是自下而上还是自上而下方法,人工智能系统在机器学习方面所取得的显著成就,都发生在一个由假设和概念构成的有限而明确的空间中——一组精确的游戏片段和动作,一组预先确定的图像。相比之下,儿童和科学家则有时会以激进的方式改变他们的概念,进行范式转变,而不是简单地调整他们已有的概念。
四岁的孩子能快速识别出猫和理解单词的意思,但他们也能做出创造性的、令人惊讶的新推断,这些推断也远远超出他们的经验范畴。例如,笔者自己的孙子最近解释说,如果一个成年人想再次成为一个孩子,他应该尝试不吃任何健康的蔬菜,因为健康的蔬菜可以让一个孩子成长为一个成年人,这种看似合理的假设是任何成年人都不会接受的,小孩子才会做出这样的假设。事实上,笔者和同事已经系统地证明,学龄前儿童比大一点的儿童和成年人更善于提出不太可能的假设,我们几乎不知道他们怎么会有这种创造性的学习和创新。
不过,看看孩子们都做些什么,可能会给程序员带来一些有用的关于计算机学习方向的提示,儿童学习的两个特点尤其引人注目,儿童是积极的学习者,它们不像人工智能那样被动地吸收数据。就像科学家做实验一样,孩子们的内在动机是,通过他们无休止的玩耍和探索,从他们周围的世界中获取信息。
最近的研究表明,这种探索比表面上看起来更有系统性,并且能够很好地找到有说服力的证据来支持假设的形成和理论选择,所以,如果将“好奇心”植入机器,并让它们与世界积极互动,可能是让它们的学习变得更真实、更广泛的一条路径。
其次,不同于现有的人工智能,儿童是社会和文化的学习者,人类不是在封闭的状态下学习,而是利用过去几代人所积累下来的智慧,最近的研究表明,甚至学龄前儿童也是通过模仿和聆听他人来学习的,但是他们并不只是被动地服从他们的老师,相反,他们以一种非常微妙和敏感的方式从他人那里获取信息,对信息的来源和可信度做出复杂的推断,并系统地将自己的经历与所听到的内容整合起来。
“人工智能”和“机器学习”听起来很可怕,在某些方面确实如此,例如,这些系统被用来控制武器,我们真的应该对此感到害怕。
然而,人的愚蠢比人工智能造成的破坏要大得多,我们需要变得比过去聪明得多,才能恰当地驾驭这些新技术,但对于人工智能取代人类,还有无论是世界末日预言还是乌托邦式愿景,都没有多少依据。
在我们解决学习的基本悖论之前,再好的人工智能也不如普通的四岁儿童。