1.1 深度学习发展简史
1.1958年—1986年
1958年,Rosenblatt发明了用于对输入的多维数据进行二分类且能够使用梯度下降法从训练样本中自动更新权值的感知机。不过,1969年,美国数学家及人工智能先驱马文·明斯基(Marvin Lee Minsky)在其著作中证明:感知机只能处理线性分类问题,其本质就是一种线性模型,甚至不能成功解决异或分类问题。
直到1986年,“深度学习之父”杰弗里·辛顿(Geoffrey Hinton)才第一次打破神经网络的非线性“诅咒”。Hinton 发明了适用于多层感知机(multi-layer perceptron,MLP)的反向传播(back propagation,BP)算法,并使用sigmoid 函数进行非线性映射,从而有效地解决了非线性分类和学习问题。然而,由于神经网络算法一直缺少严格的数学理论支持,且BP算法被指出存在梯度消失问题,神经网络热潮渐渐消退。
2.1998年—2015年
1998年,LeCun 提出了用于解决手写体数字识别问题的LeNet,使深度学习重新进入了人们的视野。
进入21世纪,一系列能够抑制梯度消失(例如预训练、ReLU 函数、跳层连接)和消除过拟合(例如正则化、dropout)的方法被提出。
2011年,微软首次将深度学习应用在语音识别领域并取得了重大突破。
2012年是深度学习大放异彩的一年。Hinton课题组首次参加 ImageNet大型图像识别挑战赛(ImageNet Large Scale Visual Recognition Competition,ILSVRC),以卷积神经网络AlexNet一举夺冠,并在分类性能上“碾压”第二名SVM方法,真正掀起了学术界研究深度学习的热潮。显卡巨头 NVIDIA将 AlexNet移植到GPU平台上,使其性能得到了几何级数的提升。
2014年,NVIDIA 发布了cuDNN 深度学习算子库。同年,贾扬清在GitHub上开源了基于GPU的深度学习框架Caffe,使NVIDIA的GPU从图形渲染领域无缝接入以深度学习为代表的人工智能领域。GPU 可以缩短训练时长和推理时延,使利用大数据集提升训练精度、将深度学习应用部署在安防等对实时性要求非常高的场合成为可能。
3.2016年以后
2016年,谷歌开发的AlphaGo 战胜了围棋世界冠军李世石,使深度学习的影响力从学术界迅速扩展到工业界和整个人类社会,人们开始讨论“人类是否会被人工智能取代”这样的话题。同年,NVIDIA 发布首款面向深度学习推理的终端芯片Jetson TK1和推理工具TensorRT,使深度学习能更好地适配低功耗、低延时的应用场景。
深度学习逐渐被应用到多个领域。例如,用于图像生成、增强、风格化的生成对抗网络(generative adversarial networks,GAN),用于游戏对战、网络结构搜索的强化学习网络,用于图像分类、检测、跟踪、分割、重识别的卷积神经网络,用于自然语言处理、手写体数字识别的循环神经网络(甚至可以作为一个中间环节完成摄像机标定、人体模型参数化等工作)。
同时,值得我们注意的是:训练样本数量达到一定规模以后,模型的精度不会随着样本数量的增加而提高;在一些应用中,我们可以获取的训练样本数量很少且难以标注,或者样本数量庞大(大到无法进行人工标注)。从2019年国际计算机视觉与模式识别会议(Conference on Computer Vision and Pattern Recognition,CVPR)录用的文章中我们可以发现,为了解决上述问题,迁移学习、元学习、小样本学习、在线学习已经成为新的研究热点。