作为一门学科,计算是连接一系列复杂分支的桥梁。就最简单的层面而言,它既包含牢固地建立在数学科学上的要素,又包含工程实践的一部分。一些计算机科学家整日研究各种符号和规则,用以证明计算过程的能力或局限性;而另一些人则深深沉浸在设计计算过程中,通过创造新技术来解决以往没有做过的事情。
当你仔细探查这座桥梁时就会发现,实际上它有许多不同的跨度。当然,这既包含涉及用传统方法设计实验来探索计算与人类行为的分支,也包含从美学的角度来定义除了线条、形状、颜色以外的,对运动、声音、人类反应以及计算效率等的审美。
我们仍不时地争论计算作为一门科学的本质。这种辩论往往被外行视为是琐碎的,甚至是愚蠢的,但它确实是一个领域展示其优势的方式之一。如果你无法定义哪些内容是你感兴趣的,哪些不是,那么你必须承认,你愿意参与各种问题,但无法解决其中的每一个问题。我们可以指出本领域在过去六十年里至少有两个重大转变。20世纪60年代,我们将大量的业务问题从计算科学转移到了我们现在称之为信息技术的领域。如果要给出这次转型发生的时间,我建议是1964年。IBM在这一年推出了IBM 360系列计算机,同时它也是Bernie Galler改革ACM管理结构的那一年。在1964年之前,ACM定期发布许多关于计算的商业应用的文章。1964年以后这类文章越来越少。
计算科学开始拥抱新方法的时刻应该是在1977年以后,基于统计的人工智能兴起的时代。统计人工智能源于一个重要的想法:人工神经元,它从一开始就是计算的一部分。然而它需要一种新的分析和数学模型。这些人工神经元是真实神经元的计算模型。它们接收到两个或更多个输入后产生一个输出。通常每个神经元的输出是输入变量的线性组合或是某个相对简单的函数。它们自身的结构并不太有趣,但大量部署的人工神经元组成的神经网络可以处理整组的数据。
很快研究人员就意识到,创建这些网络本质上是一个统计问题。假设你有一组包含预期答案的训练数据,然后你开发一个算法根据训练数据来设置神经网络的参数。与其他统计问题一样,这是一个过约束优化(over-constrained optimization)问题。你可以尝试设置参数,使系统正确率最大化。
在学科发展历史的某个阶段,你会经常发现一些抵制统计人工智能方法的计算机科学家。我曾经参加过一次会议,其中一位研究人员的演讲被听众的抱怨所中断,原因是听众认为他所展示的统计人工智能的想法不应该被视为计算机科学。
当然,对统计人工智能的反对意见并没有持续太久,现在统计人工智能已经在计算机科学领域占据了一席之地。然而,它与构成计算科学基础的逻辑学和离散数学的方法完全不同,它似乎代表着另外一种与传统计算机科学完全不同的根基。
如果想要指出计算机科学某个单一的根基,那么几乎没有人比乔治·布尔(George Boole)在1851年的著作《思想法则》(The Laws of Thought)做得更好。查尔斯·巴贝奇(Charles Babbage)的工作比布尔的工作早大约20年,虽然令人惊叹和重要,但它既不完整,也没有被其他科学家用来构建计算科学领域。它们在19世纪几乎被遗忘,直到哈佛大学教授霍华德·艾肯(Howard Aiken)在构建可编程计算机Mark I的最后阶段时才被重新发现。
相比之下,布尔的作品被戴维·希尔伯特(David Hilbert),维特根斯坦(Wittgenstein),阿兰·图灵(Alan Turing)和冯·诺伊曼(John von Neumann)等数学家阅读和使用。现在每个计算机科学系都包括布尔代数、电路理论、符号逻辑类课程,这些课程都是建立在布尔的思想基础上的。虽然可以使用布尔逻辑解释神经元的内部操作,但是这样做很困难,而且最终的结果对于受传统训练的计算机科学家来说通常没有用。例如,卷积神经网络是一种奇妙的神经网络结构,它是促成图像识别和一般模式识别重大进步的根基。
顾名思义,卷积神经网络计算输入数据的卷积。卷积操作与相关性这一统计学概念有密切联系。相关性是一种线性相似度的度量,并且最终可以转化为度量角度。在适当归一化后,相关性所表示的是两个向量之间的夹角的余弦。如果你觉得这个讨论进行得太快了,也请不必担心。它只是试图指出神经网络迫使我们从一个数据空间移动到另一个数据空间,从考虑点和数量转换成考虑向量和角度。而布尔的工作并没有帮助我们理解这个新领域。事实上许多研究人员已经指出解释神经网络内部节点含义的难度。
然而神经网络已经成为一种强大的技术。我最近读到一篇将卷积神经网络应用于计算机图形学的文章。它将这种网络的一些中间层应用于图像转换问题。具体来说,它取了两张图片,并将其中一张的风格迁移到另一张图片上。例如一张是照片,而另一张是一幅油画,该卷积神经网络能创作一张具有油画风格的照片。
(文章见https://pdfs.semanticscholar.org/3eeb/f249182614838294f7658da7e8d20c0a1917.pdf)
当阅读这篇文章时,我花了一些时间用手中的笔试图理解神经网络内部节点的含义。我承认,这项工作在很大程度上依赖于我多年前所学的《泛函分析》的相关课程,但与我的计算机科学生涯中必不可少的布尔代数关系不大。然而当我放下笔并对我已经理解了所有我想了解的东西而感到满意时,我想起了冯·诺伊曼关于计算的基础的一段引述。在他的最后一本书《计算机与大脑》中,他花了大约80页来描述计算的神经模型(McCulloch-Pitts模型),然后将其与布尔代数的逻辑联系起来。当接近尾声时,他停下来略作思索。那时他已患重病,事实上他只剩下最后几周的时间。他非常希望继续他的工作,却根本无法继续下去。我们目前对计算的理解可能都基于他所谓的“计算的第二语言”,这是一种描述演算的方式,但与我们大脑的运行方式不同。他认为,当我们试图去理解大脑计算的基本方法时,我们很快就会发现它与“我们所发展的数学有很大的不同”。
当我们见识了神经网络的巨大成功后,我们可能已经触及到了冯·诺伊曼所描述的情景。我们可能正在被推着去超越布尔计算模型的某些特定限制,并被迫去研究未来计算是否有新的根基。这个模型可能与逻辑、布尔代数有很大的不同。实际上,它可能与我们的经典数学模型不同。
作者介绍
戴维·阿兰·格里尔
(David Alan Grier)
电气与电子工程师协会计算机学会(IEEE-CS)前任主席、IEEE Fellow(会士)。乔治·华盛顿大学副教授。他目前是Djahge International公司的首席研究员兼首席技术官。grier@gwu.edu
CCCF特邀译者:
孙晓明
中国科学院计算技术研究所研究员
中国计算机学会
长按识别二维码关注我们
点击“阅读原文”,加入CCF。