深度学习所依附的神经网络技术起源于上世纪50年代,那个时候还叫感知机(Perceptron)。在人工神经网络领域中,感知机也被指为单层的人工神经网络,尽管结构简单,却能够学习并解决相当复杂的问题。 虽然最初被认为有着良好的发展潜能,但感知机最终被证明存在着严重的不可逾越的问题:它只能学习线性可分函数。连简单的异或(XOR映射)等线性不可分问题,都无能为力。 1969年,Marvin Minsky出版的《Perceptrons》书,是一个历史的转折点,神经网络第一次被打倒。Minsky的书最著名的观点有几个: (1)单层感知机没用,我们需要用MLPs(多层感知机,多层神经网络的另一种说法)来代表简单的非线性函数,比如XOR (异或)映射; (2)世界上没人有办法将MLPs训练得够好。 简而言之,要解决感知机(单层神经网络)学习线性不可分函数的问题,就必须发展多层感知机,即中间包含一个隐层的两层神经网络。 但是当时,根本找不到运用在多层神经网络上的有效算法。学术权威开启了神经网络的反右运动,悲观主义开始蔓延。 从现在看,突破性的误差反向传播算法,即著名的BP算法,开启训练多层神经网络的“钥匙”,其实那个时候已经存在了。 冰冻十年中,尽管Paul Werbos在1974年的博士毕业论文中深刻分析了将BP算法运用于神经网络方面的可能性,成为美国第一位提出可以将其用于神经网络的研究人员,但是他没有发表将BP算法用于神经网络这方面的研究。因为这个圈子大体已经失去解决那些问题的信念。 这时候我们的燕乐纯燕大侠上场了。80年代博士在学期间,他提出了神经网络的反向传播算法原型(当时他在Hinton的实验室做博士后研究,Hinton是燕乐纯的导师)。
众人只知道,1986年BP算法开始流行开来,是因为Rumelhart、Hinton、Williams合著的《Learning representations by back-propagating errors》,真正的,David Parker 和燕乐纯是事先发现这一研究进路的两人。 1989年,燕大侠加入贝尔实验室,他开始将1974年提出的标准反向传播算法应用于深度神经网络,这一网络被用于手写邮政编码识别,尽管因为种种问题失败。但是这一时期,燕大侠发明了真正可用的卷积神经网络。 到90年代中期,贝尔实验室商业化了一批基于卷积神经网络的系统,用于识别银行支票(印刷版和手写版均可识别)。直到90年代末,其中一个系统识别了全美国大概10%到20%的支票。
燕大侠和其他人发展的神经网络,正开始被热捧的时候,他一生较劲的对象Vapnik(贝尔实验室的同事)出现了。因为两层神经网络尽管解决了10年前困扰神经网络界的线性不可分问题,但是多层神经网络在实际发展中碰上了新的难题: 1.尽管使用了BP算法,一次神经网络的训练仍然耗时太久,因为当时没有如今可以用于大规模并行计算的GPU。比如,燕大侠最早做的手写邮政编码识别系统,神经网路的训练时间达到了3天,无法投入实际使用。 2.训练优化存在局部最优解问题,即过拟合,也许这是机器学习的核心难题。简要来说,过度拟合指的是对训练数据有着过于好的识别效果,这时导至模型非常复杂。这样的结果会导致对训练数据有非常好的识别较果,而对真实样本的识别效果非常差。 3.随着添加越来越多的隐含层,反向传播传递给较低层的信息会越来越少。即著名的梯度消失问题。由于信息向前反馈,不同层次间的梯度开始消失,对网络中权重的影响也会变小,因而隐藏层的节点数需要调参,这使得使用不太方便,训练的模型质量并不理想。 90年代中期,由Vapnik等人发明的支持向量机(Support Vector Machines,SVM)诞生,它同样解决了线性不可分问题,但是对比神经网络有全方位优势: 1、高效,可以快速训练;2、无需调参,atv,没有梯度消失问题;3、高效泛化,全局最优解,不存在过拟合问题。 几乎全方位的碾压。 (责任编辑:本港台直播) |