也许是受到作为生物学家的父亲的影响,辛顿年轻时起就对人脑的结构及人脑如何工作着迷,他坚信模拟人脑的构造是通向人工智能的正确道路。在20世纪70年代和80年代,关于神经网络的研究几乎进入冻结状态,辛顿的研究自然四处碰壁,美国的AI研究机构都对他的研究不感兴趣。最终辛顿落脚加拿大,因为当时只有多伦多大学愿意资助他的研究。
真理也许真是掌握在少数人手中,辛顿的研究多年来不断遭受同行的怀疑和嘲讽,连与他同校的教授都认为神经网络是“科研炼金术”,让学生离这个课题远点儿。而辛顿却不为所动,一直坚持不懈地发表了大量研究成果。1986年,辛顿与大卫·鲁姆哈特和罗纳德·威廉姆斯在《自然》杂志上共同发表了《通过误差反向传播算法的学习表示》(Learning Representations by Back-propagating Errors)。这篇论文是深度学习领域的里程碑之作,它详细介绍了反向传播算法的原理和应用:
这个算法通过反复地去调整网络中的连接权重,来最小化该网络的实际输出向量和真实预期输出向量之间的差。由于权重的不断调整,那些不作为输入和输出层的内部隐藏层开始表现出任务的重要特征,我们通过这些隐藏层单元间的相互作用来发现任务的规律性。
前文介绍过,单层神经网络可以分辨0~9这10个数字,但是要让其分辨更复杂的图像,比如判断一张随机的图片里是不是有一只猫,这个任务对单层神经网络而言就太过复杂了。而多层神经网络的目的就是解决更复杂的问题。这可以简单地理解为,深度(多层)神经网络就是把任务进行分解,然后各个攻破。
比如,我们可以设计一个三层的神经网络去识别猫。首先,可以让第一个中间层去分辨猫的各个器官的细节轮廓;第二个中间层将细节组合起来,用来分辨猫的重要器官,例如眼睛、爪子;最后一个中间层将器官组合起来,用来分辨猫的头部、躯干和四肢等。当然,这只是人脑识别猫的过程,而实际的神经网络在训练过程中是一个黑箱,它给各个权重赋值时并不遵循任何逻辑规律。
这时我们可以使用一个猫的图片库,里面有几十万张人工标注的猫的图片,然后我们让神经网络回答图片里是什么。一开始,神经网络的几万个神经元的权重是随机的,因此它给出的结果也是完全随机的。但是我们可以把标注后的猫的图片“投喂”给神经网络,告诉它“正确答案”,那么神经网络可以根据正确答案与随机答案之间的差值来不断调整这几万个神经元的权重,让结果更加贴近正确答案。这个正确结果与随机结果之间的差值又被称为成本函数,而神经网络训练的过程就是让成本函数不断缩小,最后变成零的过程。
这一过程用机器学习的语言来描述就是梯度下降——通过不断迭代试错来找到成本函数值下降最快的方向。当成本函数缩小为零时,神经网络就完成了训练,这时再给它任意一张猫的图片,它就可以很准确地给出答案了。
深度神经网络的出现,让网络的层数以及它们之间的连接数呈指数级增长。网络的输入和输出纯粹成为一个高维空间内的相互映射,从此深度神经网络远远超越了人脑所能理解的范围,这也是大模型不可解释性的根本来源。训练一个深度神经网络所需的算力随参数的增多呈指数级增长,远远超越辛顿所处的时代,这一问题将在未来几十年成为制约人工智能发展的物理难题。