深度学习原理与 TensorFlow实践
上QQ阅读APP看书,第一时间看更新

1.2 深度学习的发展历程

神经网络作为当前最有前途的人工智能的一部分,经历了三个不同的发展阶段,有高潮也有低谷。

如图1.2所示,1943年到1969年是提出神经元数学模型到单层感知机的第一阶段;经过1969年到1986年的停滞,1986年到1998年是提出并应用反向传播算法的第二阶段;又经过1998年到2006年的停滞,从2006年开始到现在是提出深度学习并广泛应用的第三阶段。

图1.2 神经网络的发展历程

生物具有学习能力是由于生物大脑具有很多神经元。美国心理学家麦卡洛克(Mc Culloch W.S.)和数学家皮特斯(Puts W.)等在1943年参考了生物神经元的结构,发表了抽象的神经元模型——麦卡洛克-皮特斯模型(Mc Culloch-Pitts Model),简称MP模型,开启了人工神经网络的研究。MP模型将神经元简化为了三个过程:输入信号线性加权、求和以及非线性激活(阈值法)。在此基础上,弗兰克·罗森布拉特(Frank Rosenblatt)于1957年提出了感知机(Perception)算法。该算法使用MP模型对输入的多维数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权值。1969年,马文·明斯基(Marvin Minsky)证明了感知机本质上是一种线性模型,只能处理线性分类问题,就连最简单的XOR(异或)问题都无法正确分类。

在研究停顿了近20年以后,杰弗里·辛顿(Geoffrey Hinton)于1986年提出了适用于多层感知机(Multi-Layer Perception,MLP)的反向传播算法(BP算法),并采用Sigmoid函数(Sigmoid函数是S型函数,常被用作神经网络的阈值函数,将变量映射到0和1之间)进行非线性映射,有效地解决了非线性分类和学习的问题。乔治·塞本柯(Geogre Cybenko,1989年)和库尔特·霍尼克(Kurt Hornik,1991年)证明了多层感知机(MLP)的万能逼近定理,即对于任何闭区间内的一个连续函数f,都可以用含有一个隐含层的BP网络来逼近。同年,延恩·勒昆(Yann Le Cun)发明了卷积神经网络——Le Net,并将其用于数字识别。1991年,BP算法被指出存在梯度消失的问题,即在误差梯度反向传递的过程中,后层梯度以乘法方式叠加到前层,由于Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习。1997年,长短期记忆网络(LSTM)模型被发明,尽管该模型在序列建模上的特性非常突出,但由于当时正处于神经网络的下坡期,因此没有引起足够的重视。

在神经网络发展受阻的同时,其他机器学习方法得到了快速的发展。1986年,决策树方法被提出,很快ID3、ID4、CART等改进的决策树方法相继出现,到目前决策树仍然是非常常用的一种机器学习方法。1995年,线性支持向量机(SVM)被统计学家万普尼克(Vapnik)提出。该方法的特点有两个:由非常完美的数学理论推导而来(统计学与凸优化等)和符合人的直观感受(最大间隔)。不过,最重要的还是该方法在线性分类的问题上取得了当时最好的成绩。2000年,Kernel SVM被提出,核化的SVM通过一种巧妙的方式将原空间线性不可分的问题,通过Kernel映射成高维空间的线性可分问题,成功解决了非线性分类的问题,且分类效果非常好。至此也进一步终结了神经网络的研究热情。

直到2006年Hinton提出了深层神经网络训练中梯度消失问题的解决方案(无监督预训练方法对权值进行初始化加上有监督训练微调),神经网络才开始快速发展,从此称多层神经网络为深度学习。其主要思想是先通过自学习的方法学习到训练数据的结构(自动编码器),然后在该结构上进行有监督训练微调。2011年,Re LU激活函数被提出,该激活函数能够有效地抑制梯度消失的问题。同年, Microsoft首次将深度学习应用在语音识别上,并取得了重大突破。

2012年,Hinton课题组为了证明深度学习的潜力,首次参加了Image Net图像识别比赛,通过其构建的卷积神经网络(CNN),Alex Net一举夺得冠军,并在分类性能上远超第二名(采用SVM方法)。也正是由于该比赛,卷积神经网络吸引了众多研究者的注意。Alex Net首次采用Re LU激活函数,极大地增加了收敛速度且从根本上解决了梯度消失问题;Alex Net抛弃了“预训练+微调”的方法,完全采用有监督训练;用添加Dropout层方法来减小过拟合,添加局部响应归一化层 (全称为Local Response Normalization,LRN)增强泛化能力/减小过拟合,并首次采用GPU对计算进行加速。2015年,Hinton,Le Cun,本吉奥(Bengio)说明了(无严格论证)损失(Loss)的局部极值问题对于深层网络来说可以忽略。该论断也消除了笼罩在神经网络上的局部极值问题的阴霾。具体原因是深层网络虽然局部极值非常多,但是通过深度学习的批量梯度下降(Batch Gradient Descent)优化方法很难陷进去,而且就算陷进去,其局部极小值点与全局极小值点也非常接近,但是浅层网络却不然,其拥有较少的局部极小值点,但是很容易陷进去,且这些局部极小值点与全局极小值点相差较大。2015年,MSRA(微软亚洲研究院)的何凯明(Kaiming He)等提出了深度残差网络(Deep Residual Net),极大地增强了深度学习网络的表达能力,并且能够轻松训练高达150层的神经网络。2014年,左景贤(Kyunghyun Cho)等人提出了将循环神经网络编码器-解码器(RNN Encoder-Decoder)用于机器翻译。至此,深度学习成为学术界、工业界的热点。而深度卷积神经网络和循环神经网络也成为自动驾驶汽车、语言翻译、对象识别、医疗诊断、自动聊天、自动写作、艺术品生成、植物识别等应用的主流神经网络。