随着21世纪第二个十年行将结束,我们有必要回顾一下这十年来在深度学习领域所取得的巨大进步。在性能日益强大的计算机及大数据可用性的推动下,深度学习已经成功攻克了曾经棘手的难题,特别是在计算机视觉和自然语言处理方面。深度学习在我们的日常生活中已无处不在,从自动驾驶到医学影像分析,从虚拟助理到深度伪装。
本篇文章概述了过去十年来最有影响力的一些论文。我希望通过简洁明了的摘要来提供深度学习领域不同方向的起点,并且提供了相当多的参考资料。
考虑到这项研究的性质,可以说是一千个人心中有一千个哈姆雷特。最有影响力的论文通常既不是第一篇论文也不是最好的那篇论文。我努力在它们之间找到平衡,并将最有影响力的论文作为主要条目,而将相关论文作为荣誉奖予以列出。当然,鉴于主观性的存在,这份列表并不是什么权威榜单云云。如果你觉得这份榜单有所遗漏,顺序或描述存在错误,请告诉我一声,以便加以改进,让这份榜单更加完整准确。
Xavier初始化后的激活(上)和不进行初始化的激活(下)
本文探讨了深度网络的一些问题,特别是权值的初始随机化。本文还注意到了S型曲线和双曲正切激活问题,并提出了替代方案SoftSign,它是一种具有更加平滑的渐近线的S型激活函数。但是,本文最主要的贡献在于初始化。
当使用正态分布的权重进行初始化时,数值很可能会急剧增大或者减小,从而无法进行训练。假设前一层的值是正态分布的独立同分布,则将它们相加会增大其方差,因此应按输入数量成比例地缩小方差,以保持输出值服从标准正态分布。将这个逻辑反过来(即按输出数量进行处理)则可以处理梯度的问题。本文介绍的Xavier初始化是两者之间的折衷,是利用方差为的正态分布初始化权重,和分别是前一层神经元和后一层神经元的数量。2015年的一篇论文《深入研究整流函数:在ImageNet分类上超越人类水平》介绍了Kaiming初始化,它是在Xavier初始化的基础上考虑了ReLU激活函数的一个改进版本。
从最早的MLP到2015年左右的许多神经网络都是用S型函数作为激活函数。S型函数具有处处可微和输出有界的特点,常用的有Logistic函数和双曲正切函数。而且它与神经生物学中的全或无定律相吻合。(注:全或无定律是神经传导的一项基本特性。即当刺激达到神经元的反应阈限时,它便以最大的脉冲振幅加以反应,但刺激强度达不到某种阈限时,神经元便不发生反应。详情参考https://en.wikipedia.org/wiki/All-or-none_law)然而,由于S型函数的导数从零开始迅速衰减,因此随着神经网络层数的增加,梯度通常会迅速减小。这就是我们常说的梯度消失问题,这也正是当时神经网络难以深度扩展的原因之一。该论文提出,使用ReLU激活函数来解决梯度消失问题,从而为神经网络的深度发展奠定了基础。(注:ReLU,Rectified Linear Unit,一种常用的激活函数,称为线性整流函数或修正线性单元)
S型函数及其导数
尽管如此,ReLU函数还是存在一些缺陷:它们在0处不可微,它们能够无限增长,并且当一半节点激活并饱和后,剩下的节点就成了“死亡”节点。2011年以来,人们提出了许多改进方法来解决这个问题,但其功效大多不如vanilla ReLUs。
《Digital selection and analogue amplification coexist in a cortex-inspired silicon circuit》(2000)一文被普遍认为是建立ReLU的生物学合理性的第一篇论文,而《What is the Best Multi-Stage Architecture for Object Recognition?》一文则是我能找到的将ReLU函数(在本文中其被称为积极部分)用于神经网络的最早的论文。
著名文章对其的引用:
整流非线性改进神经网络声学模型:该论文介绍了带泄露线性整流函数(Leaky ReLU),由于在负半部分上存在较小的梯度“泄露”,因此其输出不为零。这也防止了ReLU激活函数中部分神经元死亡现象的出现。然而,Leaky ReLU在0处的导数是不连续的。
指数线性单元快速准确的深度网络学习:指数线性单元(ELUs,Exponential Linear Units)和 Leaky ReLU相似,但在负侧更平滑且饱和值为-1。
Self-Normalizing神经网络:自归一化神经网络(SELUs,Self-Normalizing Neural Networks)旨在缩放ELU来创建固定点,并将其分布修改为标准正态分布,从而解决数据批量归一化的需求。
高斯误差线性单位:高斯误差线性单元(GELU,Gaussian Error Linear Units (GELUs):)作为一种常用的激活函数,其激活是基于高斯分布及对应的随机正则器dropout。具体来说,一个特定的值被保留的概率是标准正态分布的累积分布函数。因此,这个变量的期望值在随机正则化后就变成了。GELU在许多SOTA模型中有所应用,如BERT和GPT/GPT2。
深度卷积神经网络的ImageNet分类(52025次引用)
AlexNet 结构
AlexNet是一个使用ReLU激活函数,包含6千万参数的卷积神经网络。其最主要的贡献在于展示了深层网络的强大性能,因为就其本质而言,它的架构是过去的神经网络的更深版本。
这篇论文通常被认为是深度学习的发端。AlexNet也最早地利用GPU的大规模并行处理能力来训练比以前更深的神经网络。结果是惊人的,它将ImageNet的识别错误率从26.2%降到了15.3%,在2012年的ILSVRC脱颖而出。其强大的性能也使得深度学习受到广泛关注,同时该论文也成为深度学习领域被引量最高的存在。
著名文章对其的引用:
ImageNet层次结构中的图像示例
ImageNet:一个大型的分级图像数据库:
ImageNet数据集也为深度学习的兴起做了相当大的贡献。它也是深度学习领域被引量最高的论文之一,有着大约15050次引用(因为它于2009年发表,所以我决定将它列为荣誉奖)。该数据集是使用Amazon Mechanical Turk将分类任务外包给工人来构建的,这也使得这个天文级别的数据集成为可能。ImageNet大型视觉识别挑战赛(ILSVRC,ImageNet Large Scale Visual Recognition Challenge)是以ImageNet数据库为对象的图像分类算法竞赛,同时它也推动了计算机视觉领域其他许多创新的发展。
灵活、高性能的卷积神经网络用于图像分类:这篇论文早于AlexNet发表并与AlexNet有着许多共同点:这两篇论文都利用GPU加速训练神经网络,都利用ReLU激活函数来解决梯度消失问题。一些人认为这篇文章被冷落是很不公正的,它的被引量远少于AlexNet。
单词和短语的分布式表示及其组合性(16923次引用)
本文(以及同一作者之前的论文《Efficient Estimation of Word Representations in Vector Space》)介绍了word2vec,现在它已然成为深度学习的NLP模型中文本编码的主要方法。它基于出现在相似上下文中的单词可能具有相似的含义这一思想,而将单词嵌入向量中,从而应用于其他模型。Word2vec训练了这样一个网络,可以用来预测一个给定单词的上下文,然后提取出网络中潜在的向量。
著名文章对其的引用:
DeepMind的Atari DQN的研究结果开启了深度强化学习领域的大门。强化学习之前常用在诸如网格世界之类的低维环境,很难在复杂环境中有所应用。Atari是强化学习在高纬度环境下的第一例成功应用,这使得强化学习从籍籍无名而转身称为AI领域的香饽饽。
本文特别使用了深度Q学习,这是一种基于价值的强化学习方式。基于价值就是说目标是通过遵循由Q值函数隐式定义的策略来了解在每种状态下获得的奖励的期望值。本文所使用的策略是 —它根据Q函数及概率的估计结果而采取最贪婪(即得分最高)的行动。这样也是为了探索整个状态空间。训练Q值函数的目标是从贝尔曼方程(Bellman equation)推导出来的,它将Q值分解为当前奖励值与加权后的下一期的最大Q值之和,从而可以实现参数的自更新。这种基于当前值和未来价值函数之和来更新价值函数的方式通常被称为时差学习(Temporal Difference Learning)。
著名文章对其的引用:
因其绝妙的可视化功能,生成对抗网络怎么称其成功也不为过。依托于生成器(Generator)和鉴别器(Discriminator)之间的极大极小博弈,GANs能够对复杂、多维度分布进行建模,其对象通常是图片。生成器的目标就是最小化鉴别器正确甄别错误样本的对数概率,也即log(1 - D(G(\bold)))log(1−D(G(z))) ;而鉴别器的目标则是最大化对于正确和错误样本的分类误差,也即log D(x) + log(1 - D(G(\bold)))logD(x)+log(1−D(G(z))) 。
“极大极小博弈中对生成器的投入对于理论研究十分有益,但在实际操作中用处不大——Goodfellow, 2016”
实际应用中,生成器常被训练用作最大化鉴别器判别出错的对数概率,即D(G(\bold))D(G(z)) , (相关阅读:NIPS2016指南:生成对抗网络,章节3.2.3)。这一小小的改变减小了梯度饱和(gradient saturating)且提高了模型训练的稳定性。
著名文章对其的引用:
通过联合学习对齐和翻译的神经机器翻译(被引用9882次)
这篇文章引入了attention的概念,即,我们可以不选择压缩信息进一个RNN的隐空间里,而是在内存中保留全部的内容,通过“\mathcal(nm)O(nm)”这一操作,使输出的所有要素处理输入的所有要素。即使attention要求递增二阶收敛,它依然比固定状态的RNNs表现更优秀,不仅在类似于翻译和语言建模的文本处理领域不可或缺,其身影也穿梭在与之相去甚远的GANs领域的模型中。
Adam:随机优化的一个方法(被引用34082次)
Adam因其易于微调在自适应优化中被广泛运用,它基于为每个参数适配单独的学习率的理念。虽然最新的一些文章对Adam的表现提出了质疑,但它依然是深度学习领域中最为流行的优化算法。
著名文章对其的引用:
最初被设计为解决深度CNNs中的坡度消失/爆炸问题而产生的残差块(residual block),如今已成为几乎所有CNNs的构建基石。概念其实非常简单:在每个卷积层块前的输入加进输出中。残差网络的灵感源自于神经网络理论上不应以更多层来降维,因为最坏的情况下,多余的层会被粗暴地设为恒等映射(identity mapping)。然而实际操作中,更深度网络训练中常遇到各种困难;残差网络使各层更容易学习恒等映射,同时减少了梯度消失的问题。虽然方法十分简单,但从效果上看,特别是在更深度网络中,残差网络比常规CNNs出色得多。
著名文章对其的引用:
许多不同CNNs之间的对比
(其它许多更复杂得CNN基础理论文章也非常优秀,这里只列举了一小部分历史上重要的网络理论)
更深度的卷积:Inception模块理论源于把卷积化为因子来减少参数数量,以及减少激活次数。它能容下更深度的层嵌套,对这篇文章中提到的GoogleNet十分有益;文中的GoogleNet后来改名为SOTA网络(ILSVRC2014)。之后的许多再次介绍Inception模块的文章也相继发表了,Inception模块最终以Inception版本4嵌入于ResNets中,详情参考:Inception-ResNet及残差关系在机器学习上的影响。
针对大比例图像识别的超深度卷积网络:这是又一个在CNNs历史上非常重要的作品,这篇文章引入了VGG网络的概念。这篇文章的重大意义在于,它探索了只使用3*3卷积的可能性,而不是像其它大部分网络中更大的卷积,因而大幅降低了参数数量。
Batch正则化:通过内部变量转化加速深度网络训练(被引用14384次)
Batch正则化是如今几乎所有神经网络的又一支柱。Batch正则基于另一个简单而强有效的概念:训练中保留均值和方差数据,运用它们将原分布正则化至均值为0和方差为1。Batch正则化有效的确切原因仍存疑,但它们在实操中的有效性却母庸置疑。
著名文章的引用:
转自:大数据文摘
来源:leogao.dev
编译:武帅、狗小白、马莉
2020年,LeCun、周志华、李开复等大佬对AI有何期待?