深度学习简史(一)
本文简要叙述了深度学习的发展过程,这是第一部分。
1958年: 感知器的兴起
1958年,Frank Rosenblatt 提出了感知机(注:有的资料认为是 1957 年提出的,本文以 Frank Rosenblatt 的文章《The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain》发表时间为准),这是一种非常简单的机器,后来成为今天智能机的核心和起源。感知机是一个非常简单的二元分类器,它可以判断输入的图像是否属于给定的类别。为了实现这一点,它使用单位阶跃函数作为激活函数。
★ 单位阶跃函数(step function),又称为赫维赛德阶跃函数(Heaviside step function),定义为:
对于感知机而言,如果输入值大于 0 ,则输出值为 1 ;反之,如果输入值小于 0 ,则输出值为 0 。这是感知器的算法。
感知器
Frank 并不仅仅把感知机局视为一种算法,他还造了一台真正的实现算法的机器,这台硬件设备命名为 Mark I。这是一个纯粹的电子设备,它有 400 个广电探测器组成,用电位器实现权重,反向传播中的权重更新则由电机完成。
Mark I 感知器,图片来自美国国家历史博物馆
如同现如今在新闻媒体中会看到很多关于神经网络的内容一样,当时感知机也是热门话题。《纽约时报》曾报道,“海军希望电子计算机能够孕育出能走路、会说话、能看会写、还能自我复制并有自我意识东西”。甚至于直到今天,我们所制造的机器仍然在努力地学习行走、说话、看、写等等,而“意识”还存在争论。Mark I 的目标仅仅是识别图像,在当时,它只能识别两类图像。过了一段时间之后,人们才认识到,必须增加更多的层(感知机是一层的神经网络)才可以让网络具备学习复杂函数的能力。这样就产生了多层感知机(MLPs)。
1982~1986年:循环神经网络(RNNs)
在多层感知机解决了图像识别问题之后几年,人们开始思考如何为序列数据建模,例如文本。循环神经网络是一种用于处理序列数据的神经网络,与之前的多层感知机(MLP )为代表的前馈网络不同, 循环神经网络(RNNs) 有一个内部反馈回路,这有助于记忆每步的信息状态。
前馈网络 vs 循环神经网络
虽然 RNN 在 1982 到 1986 年之间已经被提出,但由于它存在短期记忆问题,无法处理较长的输入序列,因为一直没有受到关注,知道后来的长短期记忆网络出现。
1998:LeNet-5: 第一个卷积神经网络
LeNet-5 是最早的卷积神经网络框架之一。1998年,LeNet-5 用于文本识别。LeNet-5 由 3 部分组成:
- 2个卷积层,
- 2个子采样层或池化层,
- 3个全连接层。
卷积层中没有激活函数。
如前所言,LeNet-5 已投入商业应用。下面是 LeNet-5 的架构。
LeNet-5 在当时确实很有影响力,然而,直到 20 年后它才引起关注!不仅仅是它,整个卷积网络也是如此。LeNet-5 的发展离不开早期的研究成果,如:最早的《卷积神经网络》(Fukushima),《反向传播》(Hinton 等人发表于 1986 年)和《反向传播用于识别手写邮政编码》(LeCun 等人发表于 1989 年)。
1998: 长短期记忆(LSTM)
由于梯度不稳定的问题,简单的循环神经网络(RNN)不能处理长序列,长短期记忆(LSTM)是可以用于处理长序列的 RNN 版本。LSTM 基本上是一个极端的 RNN ,它在设计上的独特之处在于引入了“门”,通过“门”控制每一步的信息。
- “输入门”识别输入序列;
- “遗忘门”去除输入序列中所有无关信息,并且将相关信息储存在长期记忆中;
- “更新门”改变神经元状态;
- “输出门”控制着发送到下一个循环的信息。
LSTM架构。图片来自MIT 6.S191深度学习简介
LSTM 擅长处理序列的能力,使其常用于如文本分类、情感分析、语音识别、图像标题生成和机器翻译等有关序列类业务。LSTM 功能强大,但它的计算成本很高。为此,2014 年提出了门递归单元(GRU),以解决这一问题。与 LSTM 相比,GRU 的参数更少,而且同样有效。
2012:ImageNet 挑战,卷积神经网络的崛起
要谈论神经网络和深度学习的历史,几乎不可能避开 ImageNet 大规模视觉识别挑战(ImageNet Large Scale Visual Recognition Challenge,简称:ILSVRC)和 AlexNet。ILSVRC 的唯一目标是基于海量数据集对框架的图像分类和目标分类能力进行评估,许多新的、强大且有趣的框架因此而产生,见面简要地回顾一下这个过程。
- 挑战始于 2010 年,但 2012 年情况发生了变化,当时 AlexNet 以15.3% 的错误率在挑战中排名前五,这一错误率几乎是之前赢家的一半。AlexNet 包括 5 个卷积层,之后是最大池化层,最后是 3 个全连接层和一个 softmax 分类器层。AlexNet 认为深度卷积神经网络可以很好地处理视觉识别任务。但在那时,研究还没有更深入!
- 在接下来的几年里,卷积神经网络框架变得越来越大,效果越来越好。例如,拥有 19 层的 VGG 以 7.3% 的错误率在挑战中胜出。
- GoogLeNet 进一步改进,将错误降低到 6.7% 。
- 2015年,ResNet 将错误率降低到3.6%,并且表明:通过残留连接,可以训练更深层的网络(超过100层),这在当时是不可能的。人们日益发现:网络层次越深,效果越好。这就导致了其他新框架的问世,如 ResNeXt、Inception-ResNet、DenseNet、Xception,等等。参考资料 [2] 介绍了更多有关框架,敬请参阅。
ImageNet挑战。图片取自CS231n。
2014:深度生成网络
生成网络用于从训练集数据中生成或合成新的数据样本,如图像和音乐。生成网络有很多类型,但最流行的是 GANs(生成对抗网络),它是由 Ian Goodfellow 在 2014 年创建的。GANs 主要由一个生成网络和一个判别网络组成。生成网络从潜在空间中随机取样作为输入,其输出结果尽量模仿训练集中的真实样本。判别网络的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来,而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗,不断调整参数。每次训练,生成网络的输出越来越接近真实样本,最终目使判别网络无法判断生成网络的输出结果是否真实。
GANs 是深度学习社区中最热门的东西之一,该社区以生成不真实的图像和深度造假而闻名。在参考资料 [3] 中,可以了解关于 GAN 的更多知识。
生成对抗网络(GANs)
GANs 是生成模型的一种框架,其他流行的框架还有:变分自动编码器(VAE)、自动编码器和扩散模型。
2017:Transformers和Attention
★ 这里没有对 Transformer 和 Attention 进行翻译,部分原因在参考资料 [4] 中有所阐述,另外一个原因是才疏学浅,面对中文资料的不同翻译,不知如何选择,也不知孰对孰错。故,索性偷懒。 ”
2017年,ImageNet 挑战结束了,新的卷积神经网络框架也问世了,从事计算机视觉的人们对当前的成果非常满意。以前,如果要进行图像分类、目标检测、图像分割等这些工作,是比较麻烦的,现在则大不相同,不仅操作容易,而且效果很好。人们可以用 GANs 生成逼真的图像。
似乎自然语言处理(NLP)落后于 CV 了,马上就要有大新闻了。一种纯粹基于 Attention 的新型神经网络框架,让 NLP 再次掀起波澜。几年后,Attention 机制在其他领域也攻城略地,最明显的就是 CV 。这个基于 Attention 的框架被称为 transformer 。参考资料 [5] 是一篇浅显易懂的介绍文章,请参考。下图说明了 Transformer 的基本结构。
Attention Is All You Need.
Transformer 已经彻底改变了 NLP,目前它正在彻底改变计算机视觉领域。在 NLP 中,Transformer已经被用于机器翻译、文本摘要、语音识别、文本补全、文档搜索等……你可以在《Attention is All You Need》^{[6]} 这篇论文中了解关于 transformer 的更多信息。