[翻译] 神经网络与深度学习 附录:有没有一个简单的智能算法? - Appendix Is there a simple algorithm for intelligence?

目录:
首页
译序
关于本书
关于习题和难题
第一章 利用神经网络识别手写数字
第二章 反向传播算法是如何工作的
第三章 提升神经网络学习的效果
第四章 可视化地证明神经网络可以计算任何函数
第五章 为什么深层神经网络难以训练?
第六章 深度学习
> 附录:有没有一个简单的智能算法?
致谢、常见问题


附录:有没有一个简单的智能算法?

在本书中,我们已经学习了神经网络的基本特性:它如何工作,以及它是如何解决模式识别问题的。虽然神经网络可以很直接地解决很多实际问题,但是人们在心中一直有这样一个问题:神经网络可以做到更厉害的事情吗?也许神经网络,或者其他能在计算机上运行的方法,最终会被用来构建可以思考的机器,这种机器要比人类的大脑还要厉害。这个问题已经远远地超出了本书讨论的范畴,或者说,这个世界上还没有人知道如何构建这样一个机器。尽管这样,人们还是热衷于讨论这个话题。

对于计算机到底能不能达到人类大脑那样的智能程度,人们还在不断的争辩。我并不想去争论这个问题,我相信人们并不是真的质疑智能计算机的可能性,虽然这样的计算机可能极其复杂,也许已经远远不能用现在的科技来解释了,现在的反对者们也许在未来的某一天就像曾经的生机论者一样。

我想讨论的问题是,有没有一种 简单 的原理,它可以被用来解释智能?或者说,有没有一种 简单的人工智能算法?

这是一个大胆的想法,似乎太过于乐观了一点。人们有一种强烈的潜意识,认为智能是一种非常非常复杂的东西。人类那种令人惊奇的想象力,可能会让人觉得,一个简单的人工智能算法简直是不可能的。在这种潜意识之外,我认为现在还不能冒然下结论,历史告诉我们,有太多的事情,它们在一开始似乎非常非常复杂,但是后来却被简单而强大的理论所解释。

设想,在天文学的早期,人们已经知道天上有着非常多的物体:太阳、月亮、星球、彗星,还有好多好多的星星!这些物体,它们的运行方式非常的不一样,举例来说,彗星会突然冒出来,在天上留下一道轨迹,然后就消失不见。在十六世纪,只有傻瓜才会相信,这些物体的运行方式可以被一系列简单的原理来解释说明。但是牛顿在十七世纪所发现的万有引力定律,不仅可以解释这些天上运行的物体的规律,还可以解释地面上的规律,例如潮汐、Earth-bound projecticles 等现象。这使得十六世纪的傻瓜乐观主义者看起来像一个悲观主义者一样,他们要求的太少了!

像这样的例子还有不少,想想那些构成我们世界的数不清的化学物质,可以用门捷列夫的元素周期表来完美的解释,也许,还可以用量子力学中一些简单的原理来解释。在生物界中,有着那么多的复杂性和多样性,而这些都是来源于自然选择学说中的进化论。这样那样的例子也许告诉我们,人类的大脑,当前世界上关于智能最好的例子,也许并不像它看起来的那样复杂*。

*在这个附录中,我假定如果一台计算机可以被称作是智能的话,那么它的能力应该超过,或者起码不弱于人类思考的能力。所以,问题“有没有一个简单的人工智能算法?”与问题“有没有一个简单的算法,它可以像人类的大脑一样好?”是等价的。当然,也许有某种形式的智能并不像人类的思维一样,而是以其他有趣的方式超越它。

相反,虽然有这么多乐观的例子存在,智能只可以被一系列非常复杂的机制所解释也是可能的。以我们的大脑为例,在人类的进化史上,大脑的机制在各种自然选择的压力下得到了进化。如果这种观点是正确的,那么智能将会不可避免地引入许许多多的不可分解的复杂性,所以用一种简单的原理来解释它是不可能的。

这两种观点哪一个是正确的呢?

为了更好地理解这个问题,让我们试着问一个相关的问题:有没有一种简单的理论可以解释人类大脑的运作方式?我们首先来看看几种衡量大脑复杂性的办法。第一种是从神经连接的角度来衡量的,也就是说,看看大脑中到底有多少个神经元,有多少个神经胶细胞,在神经元之间有多少个连接。你之前也许听到过这个问题的答案:大脑中大约有一千亿个神经元,一千亿个神经胶细胞,和一百万亿个神经元之间的连接。这些数字令人惊奇,如果我们打算试着去了解这些神经元之间的连接的功能,那么恐怕不是一个简单的算法就能说明的事情了。

此外还有第二种观点,这种观点要更为乐观,它认为大脑可以用分子生物学来解释,也就是说,为了描述大脑的结构,到底需要多少的基因信息。为了回答这个问题,我们首先考虑,人类的大脑到底和黑猩猩有什么区别。你也许听说过这种观点:“人类是百分之九十八的大猩猩。”这种说法有时候会变,有时候是百分之九十五,有时候是百分之九十九。这种变化是因为一开始比较基因的时候,并不是全部比较了的,而是比较了一部分。不过,在2007年的时候,我们有了大猩猩完整的基因组测序(另见这里),然后我们大约知道了人类和大猩猩的基因有着 1.25 亿个不同的 DNA 碱基对,而人类或者大猩猩大约有三十亿 DNA 碱基对。所以,百分之九十八的说法并不正确,准确的说,人类有百分之九十六与大猩猩相似。

在这 1.25 亿个碱基对中,到底隐藏着什么样的信息呢?每一个碱基对可以被划分为四种类型中的一种,腺嘌呤(adenine)、胞嘧啶(cytosine)、鸟嘌呤(guanine)、胸腺嘧啶(thymine)。(译者注:怎么感觉英语要好记的多?)所以每一种碱基对可以用两个比特的信息来表示,也就是说,1.25 亿个碱基对等价于 2.5 亿个比特信息(bits of information)。这便是人类与大猩猩在基因上的区别。

当然,并不是所有的这 2.5 亿个比特信息都影响着人类或者是大猩猩的大脑,我们感兴趣的只是人类和大猩猩在大脑上的区别。不幸的是,没人知道哪部分的基因影响了大脑。不过,我们在这里就假设有一半,也就是 1.25 亿个比特信息,影响着人类和大猩猩在大脑上的区别。

1.25 亿个比特信息并不是一个小的数字,让我们用人类的视角感受一下它到底有多大。如果把它看作是英语文本的话,会有多大?似乎一个英语字符大约是一个比特,其实没这么低,字母表中有26个字符;不过在英语文本中有着很多的冗余信息。当然,也许在基因信息中也有很多的冗余信息,所以每个碱基对两个比特似乎过高估计了。不过我们先不管这个,最坏的情况下,我们也不过是过高估计了人类大脑的复杂程度。在这些假设之下,我们了解到,从基因的角度看,人类的大脑和大猩猩的大脑,大约有着 1.25 亿个字符的不同,也就是大约 0.25 亿个英语单词。这相当于 30 本英王钦定版圣经。

这个信息量确实很大,但也不是完全无法理解的那么大。对于人类来说,也许一个人无法理解那么多的信息,但是对于一个团体,理解这样的信息是可能的。另一方面,尽管这些信息很多,但是相比于一千亿个神经元,一千亿个神经胶细胞,或者一百万亿个神经连接,其实是个很小很小的数目了。

这个事实(数目极多的神经元,和数目相对少的基因)告诉我们,基因组并不包含一个详细的对这些神经元连接的描述,而是对大脑庞大的结构和其基础的原理做了定义。似乎这些结构和原理,已经足够让我们人类的大脑变得智能。当然,事实没这么简单,对于一个婴儿来说,他需要健康的环境和充足的营养来成长为一个智力健全的人。在某种程度上来说,“我们如何进行思考”,这个问题的答案就存储在我们的基因之中。

上面描述的各种数字都是非常粗糙估计的。也许我们过高估计了 1.25 亿个比特信息,人类思维的核心原则也许只包含在很少的信息里,其余的信息只起到一些细枝末节的作用。也许我们低估了这个数字,谁知道呢。我们大概会这样想:大脑的结构确实是很复杂的,但是没复杂到不可想象的地步。从分子生物学的角度来看,似乎终会有那么一天,我们人类将解开大脑中的秘密。

事实上,1.25 亿个比特信息仅仅量化了人类和大猩猩在大脑上的基因 区别,我们大脑的功能并不都取决于这 1.25 亿个比特信息。大猩猩也有着不同寻常的思维能力,解开“智能”谜团的钥匙并不只存在于人类的大脑中,人类大脑也许只比大猩猩强一点点,在本质上并没有很大的不同。如果不考虑人类对自己所拥有的能力的极端自信,也许:在五百万年前(地球已经四十六亿岁了),大猩猩和人类的智商也许是一样的。当然,在没有更有说服力的证据之前,我赞同于人类优越论:我认为有关于人类思维最有趣的那部分是 1.25 亿个不同的比特信息,而不是我们与大猩猩相同的那部分基因组。

如果采用分子生物学的观点的话,描述大脑复杂度的难度可能下降了九个量级,但仍旧不能告诉我们,到底有没有一种简单的智能算法。我们可以进一步地下降描述大脑的复杂程度吗?如果可以的话,我们能不能找出一种简单的智能算法?

不幸的是,我们还没有任何办法做到这一点。下面我会介绍一些已有的成果,只是一些简短、不完整的概括。

“有没有一个简单的智能算法”这个问题其实来源于2000年 Nature 杂志的一篇实验报道。一个由 Mriganka Sur 领导的科学家小组对新生的白鼬的大脑做了一些实验。一般来说,白鼬眼睛所接受到的信号会传送到大脑中一个叫做视觉皮层的地方,但是科学家对其信号做了一些修改,使其传送到听觉皮层而不是视觉皮层。

为了理解到底发生了什么,我们先来了解一下什么是视觉皮层。视觉皮层包含着许多方位功能柱(orientation columns)。它们都是一些很小的神经元板(slabs of neurons),可以对特定方向的视觉刺激来做出反应。你可以把方位功能柱看作是一些迷你方位传感器:如果有人在某个方向发射出一束亮光,那么一处特定的方位功能柱就会激活。如果这束光更换了方向,那么就会有另外一个方位功能柱激活。视觉皮层中一个非常重要的机制即是方位图(orientation map),它决定着方位功能柱的位置。

而科学家们发现,当视觉信号被送到听觉皮层的时候,听觉皮层有了一些变化。听觉皮层中出些了一系列方位功能柱和一个方位图,与视觉皮层中的组织相比,它们都有些絮乱,但是确定无疑的是,它们都是相似的。科学家们还做了一些简单的测试,他们从不同的方向发出不同的光束,来观察白鼬对这些视觉刺激的反应。这一系列测试表明,白鼬尝试用听觉皮层来学习如何去“看”。

这是一个令人震惊的结果。这似乎说明,人类大脑中的不同部分,它们有一个共同的原则,来对不同的感官信息做出回应。这种共同性,似乎告诉我们,一种简单的智能算法是可能存在的。当然,我们还不能盲目自信,这些实验只是非常粗糙地试验了白鼬的视觉,远远达不到正常的地步。我们不可能去问白鼬它到底有没有看到什么东西,这些实验到底有多高的准确性也难以说明,所以我们的大脑到底有没有这样一个共同的原则,还很难说。

还有一些相反的发现,这些发现来源于进化心理学和神经解剖学。自二十世纪六十年代以来,进化心理学发现了很多 人类的共性(human universals),即一些人类共有的复杂行为。这些人类的共性包括母亲和儿子之间的乱伦禁忌、音乐和舞蹈、以及很多复杂的语言结构(例如脏话、代词、动词等)。神经解剖学的很多发现也佐证了这些结果:人类的很多行为都由大脑中某个特定的区域来控制,而这些区域对于所有人来说都是相似的。总的来说,这些发现似乎告诉我们,许许多多非常专业化的行为都与我们大脑中的某个区域是直接相连的。

有些人从这些结果中总结:如果要说明大脑工作的方式,必须要由很多种区分开的解释来说明,所以,对于我们的大脑,必然有一个不可简化的复杂性,这个复杂性使得一种简单的对于大脑功能的解释(或者说,一种简单的智能算法)成为不可能。例如,一个知名的人工智能研究者,Marvin Minsky,也抱有这种观点。在上个世纪七八十年代,Minsky 发展了他的“心智社会(Society of Mind)”理论,这个理论基于这样一种观点:人类的智力来源于一大批独立的简单的(但是非常地不同)计算过程,Minsky 把这些过程叫做代理(agents)。在他的描述这个理论的书里,Minsky 这样总结他的观点:

是什么魔术成就了我们的智力?秘诀就在于没有秘诀!我们强大无比的智力来源于多样化,而不是来源于某个单一的、完美的原理。

在给他书的某则评论的回应*里,Minsky 解释了他写心智社会的动机,基于一种神经解剖学和进化心理学的观点:

我们都知道大脑是由成百上千种不同的区域和 nuclei 组成的,它们在结构上、组织上都有着显著的不同,而它们各自又参与到我们的各种心智活动之中。这一切都表明,我们传统上称作是“智力”或者“理解”的东西,其实是由许许多多复杂的机制集合而成的。

*In “Contemplating Minds: A Forum for Artificial Intelligence”, edited by William J. Clancey, Stephen W. Smoliar, and Mark Stefik (MIT Press, 1994).

当然,Minsky 不是唯一一个只有这样观点的人。我认为这样的观点很有趣,但是支持其成立的证据还不是很有说服力。虽然大脑是由许多不同的区域所组成,但着并不意味着一种简单的解释是不存在的。也许这种复杂性起源于一个简单的、公共的原理,就像天体的运行一样,各种行星、太阳、星星,它们都遵循着万有引力。不管是 Minsky,还是其他持有相同观点的人,他们的论述还不能令人信服。

我自己认为,对于智能,是可能存在一个简单的算法的。(译者注:虽然一直把 algorithm 翻译为算法,但这肯定不是传统意义上那种数学上的算法;这里的 algorithm 想要说明的是,智能背后所依托的那一套规则。)我之所以相信一个简单的算法的存在,是因为这是一个乐观的想法。在科学研究领域,一个没有经过证实的乐观想法,要比一个经过证实的、理智的悲观想法要更有益处:因为乐观主义者更愿意去探索新的事物。各种发明和发现都是由此而来,就算最终得到的和最初设想的并不相同。而悲观主义者,他也许在某种狭窄的意义上是“正确”的,但是其创造力要远低于乐观主义者。

这种观点与我们通常判断事物的方式不同:我们喜欢把事物定义为正确或者错误。这种策略在处理那些经常遇到的细节上的问题,也许会很有效果,但是当我们面对那种非常笼统、大胆,那种可能颠覆人们认知的想法时,这种策略可能就没那么有效了。有时候,我们对事物是正确的,还是错误的,所知甚少。我们当然可以看似理智的拒绝这样的观点,把精力都放在似乎更有逻辑、更可能成功的那些想法上面。我们也可以接受这种目前无人理解的想法,在没有任何成功的保证下,把我们的毕生精力投入到这个笼统、大胆的想法上面。

尽管这样说,其实我并没有十足的把握,我们终将找到一个关于智能的简单解释。更准确地说,我不相信的是我们可以找到一个简单的 Python (或者其他语言)程序,只有几千行代码,就可以实现人工智能。我也不相信我们可以设计出一个容易描述的神经网络,可以达到人类智力的水平。但是我相信的是,尝试、探索这样的想法是值得的,也许最终我们可以写出一个复杂的程序,或者构建一个精细的网络——从而达到真正的人工智能。

在上个世纪八十年代,声名显赫的数学家和计算机科学家 Jack Schwartz 受邀参加了一个辩论会,双方辩者是人工智能的支持者和人工智能的怀疑者。这场辩论最终变得不可控制:人工智能的支持者开始盲目自信,人工智能的怀疑者则把人工智能贬得一无是处。Schwartz 则保持着一个旁观者的角色,没有发表任何看法。在辩论会的一个间隙,他被要求对现在讨论的话题作一些看法,他说:“这个,嗯,有些人的想法,可能需要一百个诺贝尔奖的积淀才能实现”(参见这本书 22 页)。我觉得这是一个完美的回应。我们可以非常乐观:人工智能可以由一个简单、强大的想法来实现。但是除此之外,我们还需要更多更多这样的想法,我们还有一条非常长的路要走!

Next:
致谢、常见问题

展开阅读全文
©️2020 CSDN 皮肤主题: 终极编程指南 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值