现在所说的深度学习基本是深层神经网络的代名词,神经网络技术不是最近新发明的,其最早可以追溯到1943年。
1943,神经网络早期的神经网络模型类似于仿生机器学习,受大脑的学习机理启发,模仿大脑神经元结构设计人工神经网络中的神经元。Warren McCulloch教授和Walter Pitts教授提出了McCulloch-Pills Neuron的计算结构。图1是大脑神经元结构与McCulloch-Pills Neuron结构对比图。
图1 大脑神经元结构与McCulloch-Pills Neuron结构对比图
McCulloch-Pills Neuron结构使用了简单的线性加权和来模拟大脑神经元输入与输出之间的变换,最终通过一个阈值函数得到一个0或1的输出,完成神经元的计算。
1958,McCulloch-Pills Neuron结构的权值还是通过简单的人工手动设置,这显然既费时又费力,让程序自动学习并调整权值就非常重要。Frank Rosenblatt教授在1958年提出感知机模型,它可被视为一种最简单形式的前馈神经网络(单层人工神经网络),是一种二元线性分类器。感知机利用梯度下降法对损失函数进行极小化,求出可将训练数据进行线性划分的分离超平面,从而求得感知机模型。
1969,McCulloch-Pills Neuron结构与感知机模型的提出让机器学习迎来第一春,但它们也存在较大的局限性,Marvin Minsky教授等证明感知机模型只能解决线性可分问题,同时也指出在当时的计算能力下,多层神经网络的实现是不可能的事情,这些局限性导致学术界开始抨击机器学习模型,降低了机器学习在学术界的热度。神经网络的研究在之后的十几年中几乎处于停滞状态。
20世纪80年代,分布式知识表达和神经网络反向传播算法的提出给了低迷的神经网络研究一剂兴奋剂。分布式知识表达的基本思想是现实世界中的知识和概念可以用多个神经元来表示,同时一个神经元也可以参与多个概念的表达,比如用一类神经元表示汽车的颜色,另一类神经元表示汽车的类型,那么对于“白色小轿车”便可以用两个神经元来表示,这种将单个神经元拓展到多个神经元的方式,大大加强了模型的表达能力,使得神经网络从宽度的方向走向了深度的方向。反向传播算法(Back Propagation,BP)降低了神经网络模型训练的时间成本,直到今天,BP算法都是训练神经网络模型的主要方法。
20世纪80年代末90年代初,神经网络的研究迎来了新一轮的发展高峰期,现在常用的网络模型,如卷积神经网络、循环神经网络、LSTM网络模型等都在这一时期获得了飞速发展,但受计算资源、数据量等影响,训练深层神经网络依旧非常困难。值得注意的是,在神经网络发展的同时,传统的机器学习算法也取得了突破性的进展,其热度逐步超越了神经网络,成为了机器学习领域最常用的方法。
随着计算机海量计算能力的进一步提高,以及云计算、GPU等的出现,神经网络的发展迎来的又一轮高潮,2012年李飞飞等人举办了ImageNet图像分类竞赛,随后深度学习的热度呈指数级上升,到2016年,深度学习已经成为了谷歌上最热门的搜索词。如今我们正处于一个深度学习飞速发展的时期,吴恩达在他的深度学习课程中说到,由于强大的计算资源、海量的数据、算法的飞速发展,深度学习将会在未来十年持续发展。