五、1965年:第一个深度学习
深度前馈网络架构的成功学习始于1965年的乌克兰,当时Alexey Ivakhnenko和Valentin Lapa为具有任意多个隐藏层的深度MLP引入了第一个通用的工作学习算法。
Alexey Ivakhnenko给定一组具有相应目标输出向量的输入向量训练集,层逐渐增长并通过回归分析进行训练,然后借助单独的验证集进行修剪,其中正则化用于清除多余的单元。层数和每层单元以问题相关的方式学习。与后来的深度神经网络一样,Ivakhnenko的网络学会了为传入数据创建分层的、分布式的、内部表示。他没有称它们为深度学习神经网络,但它们就是这样。事实上,「深度学习」这个术语最早是由Dechter于1986年引入机器学习的,而Aizenberg等人在2000则引入了「神经网络」的概念。
六、1967-68年:随机梯度下降
1967年,甘利俊一首次提出通过随机梯度下降 (SGD)训练神经网络。甘利俊一与他的学生Saito在具有两个可修改层的五层MLP中学习了内部表示,该层被训练用于对非线性可分离模式类进行分类。Rumelhart和Hinton等人在1986年做出了类似的工作,并将其命名为反向传播算法。
七、1970年:反向传播算法
1970 年,Seppo Linnainmaa率先发表了反向传播的算法,这是一种著名的可微节点网络信用分配算法,也称为「自动微分的反向模式」。
Seppo LinnainmaaLinnainmaa首次描述了在任意、离散的稀疏连接情况下的类神经网络的高效误差反向传播方式。它现在是广泛使用的神经网络软件包的基础,例如PyTorch和谷歌的Tensorflow。反向传播本质上是为深度网络实施莱布尼茨链式法则的有效方式。柯西(Cauchy)提出的梯度下降在许多试验过程中使用它逐渐削弱某些神经网络连接并加强其他连接。1985年,计算成本已比1970年减少约1,000倍,当台式计算机刚刚在富裕的学术实验室中普及时,David Rumelhart等人对已知方法进行实验分析。
David Rumelhart通过实验,鲁姆哈特等人证明反向传播可以在神经网络的隐藏层中产生有用的内部表示。至少对于监督学习,反向传播通常比甘利俊一通过SGD方法进行的上述深度学习更有效。2010年之前,许多人认为训练多层神经网络需要无监督预训练。2010年,Schmidhuber的团队与Dan Ciresan表明深度FNN可以通过简单的反向传播进行训练,并且根本不需要对重要应用进行无监督预训练。
八、1979年:首个卷积神经网络
1979年,福岛邦彦(Kunihiko Fukushima)在STRL开发了一种用于模式识别的神经网络模型:Neocognitron。福岛邦彦但这个Neocognitron用今天的话来说,叫卷积神经网络(CNN),是深度神经网络基本结构的最伟大发明之一,也是当前人工智能的核心技术。福岛博士引入的Neocognitron,是第一个使用卷积和下采样的神经网络,也是卷积神经网络的雏形。福岛邦彦设计的具有学习能力的人工多层神经网络,可以模仿大脑的视觉网络,这种「洞察力」成为现代人工智能技术的基础。福岛博士的工作带来了一系列实际应用,从自动驾驶汽车到面部识别,从癌症检测到洪水预测,还会有越来越多的应用。1987年,Alex Waibel将具有卷积的神经网络与权值共享和反向传播相结合,提出了延时神经网络(TDNN)的概念。1989年以来,Yann LeCun的团队为CNN的改进做出了贡献,尤其是在图像方面。
Yann LeCun2011年末,Schmidhuber的团队大大加快了深度CNN的训练速度,使其在机器学习社区中变得更加流行。团队推出基于GPU的CNN:DanNet,比早期的CNN更深入、运算更快。同年,DanNet成为第一个赢得计算机视觉竞赛的纯深度CNN。由Microsoft Research的4位学者提出的残差神经网络(ResNet),在2015年的ImageNet大规模视觉识别竞赛拔得头筹。Schmidhuber 表示,ResNet是其团队研发的高速神经网络(Highway Net)的一个早期版本。相较于以前的神经网络最多只有几十层,这是第一个真正有效的、具有数百层的深度前馈神经网络。
九、1987-1990年代:图神经网络与随机Delta法则
可以操纵结构化数据(例如图形)的深度学习架构于1987年由Pollack提出,并在20世纪90年代初由 Sperduti、Goller和Küchler进行扩展和改进。如今,图神经网络被用于许多应用程序中。
Paul Werbos和R. J. Williams等人分析了在RNN中实现梯度下降的方法。Teuvo Kohonen的自组织映射(Self-Organizing Map)也流行起来。
Teuvo Kohonen1990年,Stephen Hanson引入了随机Delta法则,这是一种通过反向传播训练神经网络的随机方法。几十年后,这个方法在「dropout」的绰号下流行起来。
十、1990年2月:生成式对抗网络/好奇心
生成对抗网络(GAN)最早于1990年在以「人工智能好奇心」为名发表。
两个对抗的NN(一个概率生成器和一个预测器)试图在一个最小极限游戏中使对方的损失最大化。其中:
- 生成器(称为控制器)生成概率输出(使用随机单元,如后来的StyleGAN)。
- 预测器(称为世界模型)看到控制器的输出并预测环境对它们的反应。使用梯度下降法,预测器NN将其误差最小化,而生成器NN试图这个误差最大化——一个网的损失就是另一个网络的收益。
在2014年关于GAN的论文之前4年,Schmidhuber就在著名的2010年调查中,将1990年的生成式对抗NN总结如下:「作为预测世界模型的神经网络被用来最大化控制器的内在奖励,它与模型的预测误差成正比」。而之后发布的GAN,只是一个实例。其中,试验非常短,环境只是根据控制器(或生成器)的输出是否在一个给定的集合中而返回1或0。1990年的原理被广泛用于强化学习的探索和现实图像的合成,尽管后者的领域最近被Rombach等人的Latent Diffusion接替。1991年,Schmidhuber发表了另一个基于两个对抗性NN的ML方法,称为可预测性最小化,用于创建部分冗余数据的分离表征,1996年应用于图像。
十一、1990年4月:生成子目标/按指令工作
近几个世纪以来,大多数NN都致力于简单的模式识别,而不是高级推理。
然而,在20世纪90年代初,首次出现了例外。这项工作将传统的「符号」层次式人工智能的概念注入到端到端的可区分的「次符号」(sub-symbolic)NN中。1990年,Schmidhuber团队的NN学会了用端到端可微分NN的子目标生成器来生成层次化的行动计划,用于层次化强化学习(HRL)。一个RL机器得到额外的命令输入,其形式为(开始,目标)。一个评估器NN学习预测从开始到目标的当前奖励/成本。一个基于(R)NN的子目标生成器也看到了(开始,目标),并使用评估器NN的(副本)通过梯度下降学习一连串成本最低的中间子目标。RL机器试图使用这种子目标序列来实现最终目标。该系统在多个抽象层次和多个时间尺度上学习行动计划,并在原则上解决了最近被称为「开放性问题」的问题。
十二、1991年3月:具有线性自注意力的Transformer
具有「线性自注意力」的Transformer首次发表于1991年3月。
这些所谓的「快速权重程序员」(Fast Weight Programmers)或「快速权重控制器」(Fast Weight Controllers)就像传统计算机一样分离了存储和控制,但以一种端到端差异化、自适应,以及神经网络的方式。
此外,今天的Transformer大量使用无监督预训练,这是Schmidhuber在1990-1991年首次发表的一种深度学习方法。
十三、1991年4月:通过自监督的预训练进行深度学习
今天最强大的NN往往是非常深的,也就是说,它们有很多层的神经元或很多后续的计算阶段。然而,在20世纪90年代之前,基于梯度的训练对深度NN并不奏效(只对浅层NN有效)。与前馈NN(FNN)不同的是,RNN有反馈连接。这使得RNN成为强大的、通用的、平行序列的计算机,可以处理任意长度的输入序列(比如语音或者视频)。然而,在20世纪90年代之前,RNN在实践中未能学习深层次的问题。为此,Schmidhuber建立了一个自监督的RNN层次结构,来尝试实现「通用深度学习」。
1991年4月:将一个NN蒸馏成另一个NN
通过使用Schmidhuber在1991年提出的NN蒸馏程序,上述神经历史压缩机的分层内部表征可以被压缩成一个单一的递归NN(RNN)。在这里,教师NN的知识被「蒸馏」到学生NN中,方法是训练学生NN模仿教师NN的行为(同时也重新训练学生NN,从而保证之前学到的技能不会被忘记)。NN蒸馏法也在许多年后被重新发表,并在今天被广泛使用。
十四、1991年6月:基本问题——梯度消失
Schmidhuber的第一个学生Sepp Hochreiter在1991年的毕业论文中发现并分析了基本的深度学习问题。
深度NN受到现在著名的梯度消失问题的困扰:在典型的深度或递归网络中,反向传播的错误信号要么迅速缩小,要么超出界限增长。在这两种情况下,学习都会失败。