一. 什么是深度学习
深度学习作为机器学习算法研究中的一个新的技术,其动机在于建立、模拟人脑进行分析学习的神经网络。
深度学习是相对于简单学习而言的,目前多数分类、回归等学习算法都属于简单学习或者浅层结构,浅层结构通常只包含1层或2层的非线性特征转换层,典型的浅层结构有高斯混合模型(GMM)、隐马尔科夫模型(HMM)、条件随机域(CRF)、最大熵模型(MEM)、逻辑回归(LR)、支持向量机(SVM)和多层感知器(MLP)。
其中,最成功的分类模型是SVM,SVM使用一个浅层线性模式分离模型,当不同类别的数据向量在低维空间无法划分时,SVM会将它们通过核函数映射到高维空间中并寻找分类最优超平面。
Fig1. SVM由**低维**转成**高维**
浅层结构学习模型的相同点是采用一层简单结构将原始输入信号或特征转换到特定问题的特征空间中。浅层模型的局限性对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定的制约,比较难解决一些更加复杂的自然信号处理问题,例如人类语音和自然图像等。而深度学习可通过学习一种深层非线性网络结构,从而模拟更加复杂的函数,但同时也使得待学习的参数激增,所以往往需要的训练数据集很大。
Fig2.传统的神经网络和深度神经网络
二. 深度学习的发展历程
首先让我们来看一张图:
Fig3.深度学习发展过程
由图可以明显看出DL经历了两个低谷,这两个低谷也将神经网络的发展分为了三个不同的阶段:
最早的神经网络的思想起源于1943年的MCP人工神经元模型(MCP是“人工神经网络”这个概念的提出者***美国数学家沃尔特·皮茨(W.Pitts)和心理学家沃伦·麦克洛克(W.McCulloch)***名字的缩写)
当时是希望能够用计算机来模拟人的神经元反应的过程,该模型将神经元简化为了三个过程:输入信号线性加权,求和,非线性激活(阈值法)
Fig4.MCP人工神经元
第一次将MCP用于机器学习(分类)的当属1958年Rosenblatt发明的感知器(perceptron)算法。该算法使用MCP模型对输入的多维数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权值。
1969年,美国数学家及人工智能先驱Minsky在其著作中证明了感知器本质上是一种线性模型,只能处理线性分类问题,就连最简单的XOR(亦或)问题都无法正确分类。这等于直接宣判了感知器的死刑,神经网络的研究也陷入了近20年的停滞。
第一次打破非线性诅咒的当属现代DL大牛Hinton,其在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮。
1989年,Robert Hecht-Nielsen证明了MLP的万能逼近定理,即对于任何闭区间内的一个连续函数f,都可以用含有一个隐含层的BP网络来逼近该定理的发现极大的鼓舞了神经网络的研究人员。
也是在1989年,LeCun发明了卷积神经网络-LeNet,并将其用于数字识别,且取得了较好的成绩,不过当时并没有引起足够的注意。
值得强调的是在1989年以后由于没有特别突出的方法被提出,且NN一直缺少相应的严格的数学理论支持,神经网络的热潮渐渐冷淡下去。冰点来自于1991年,BP算法被指出存在梯度消失问题,即在误差梯度后向传递的过程中,后层梯度以乘性方式叠加到前层,由于Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习,该发现对此时的NN发展雪上加霜。
1997年,LSTM模型被发明,尽管该模型在序列建模上的特性非常突出,但由于正处于NN的下坡期,也没有引起足够的重视。
1986年,决策树方法被提出,很快ID3,ID4,CART等改进的决策树方法相继出现,到目前仍然是非常常用的一种机器学习方法。该方法也是符号学习方法的代表。
1995年,线性SVM被统计学家Vapnik提出。该方法的特点有两个:由非常完美的数学理论推导而来(统计学与凸优化等),符合人的直观感受(最大间隔)。不过,最重要的还是该方法在线性分类的问题上取得了当时最好的成绩。
1997年,AdaBoost被提出,该方法是PAC(Probably Approximately Correct)理论在机器学习实践上的代表,也催生了集成方法这一类。该方法通过一系列的弱分类器集成,达到强分类器的效果。
2000年,KernelSVM被提出,核化的SVM通过一种巧妙的方式将原空间线性不可分的问题,通过Kernel映射成高维空间的线性可分问题,成功解决了非线性分类的问题,且分类效果非常好。至此也更加终结了NN时代。
2001年,随机森林被提出,这是集成方法的另一代表,该方法的理论扎实,比AdaBoost更好的抑制过拟合问题,实际效果也非常不错。
2001年,一种新的统一框架-图模型被提出,该方法试图统一机器学习混乱的方法,如朴素贝叶斯,SVM,隐马尔可夫模型等,为各种学习方法提供一个统一的描述框架。
该阶段又分为两个时期:快速发展期(2006~2012)与爆发期(2012~至今)
2006年,DL元年。是年,Hinton提出了深层网络训练中梯度消失问题的解决方案:无监督预训练对权值进行初始化+有监督训练微调。其主要思想是先通过自学习的方法学习到训练数据的结构(自动编码器),然后在该结构上进行有监督训练微调。但是由于没有特别有效的实验验证,该论文并没有引起重视。
2011年,ReLU激活函数被提出,该激活函数能够有效的抑制梯度消失问题。
2011年,微软首次将DL应用在语音识别上,取得了重大突破。
2012年,Hinton课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,其通过构建的CNN网络AlexNet一举夺得冠军,且碾压第二名(SVM方法)的分类性能。也正是由于该比赛,CNN吸引到了众多研究者的注意。
AlexNet的创新点:
(1)首次采用ReLU激活函数,极大增大收敛速度且从根本上解决了梯度消失问题;(2)由于ReLU方法可以很好抑制梯度消失问题,AlexNet抛弃了“预训练+微调”的方法,完全采用有监督训练。也正因为如此,DL的主流学习方法也因此变为了纯粹的有监督学习;(3)扩展了LeNet5结构,添加Dropout层减小过拟合,LRN层增强泛化能力/减小过拟合;(4)首次采用GPU对计算进行加速;
2013,2014,2015年,通过ImageNet图像识别比赛,DL的网络结构,训练方法,GPU硬件的不断进步,促使其在其他领域也在不断的征服战场
2015年,Hinton,LeCun,Bengio论证了局部极值问题对于DL的影响,结果是Loss的局部极值问题对于深层网络来说影响可以忽略。该论断也消除了笼罩在神经网络上的局部极值问题的阴霾。具体原因是深层网络虽然局部极值非常多,但是通过DL的BatchGradientDescent优化方法很难陷进去,而且就算陷进去,其局部极小值点与全局极小值点也是非常接近,但是浅层网络却不然,其拥有较少的局部极小值点,但是却很容易陷进去,且这些局部极小值点与全局极小值点相差较大。论述原文其实没有证明,只是简单叙述,严密论证是猜的。。。
2015,DeepResidualNet发明。分层预训练,ReLU和BatchNormalization都是为了解决深度神经网络优化时的梯度消失或者爆炸问题。但是在对更深层的神经网络进行优化时,又出现了新的Degradation问题,即”通常来说,如果在VGG16后面加上若干个单位映射,网络的输出特性将和VGG16一样,这说明更深次的网络其潜在的分类性能只可能>=VGG16的性能,不可能变坏,然而实际效果却是只是简单的加深VGG16的话,分类性能会下降(不考虑模型过拟合问题)“Residual网络认为这说明DL网络在学习单位映射方面有困难,因此设计了一个对于单位映射(或接近单位映射)有较强学习能力的DL网络,极大的增强了DL网络的表达能力。此方法能够轻松的训练高达150层的网络。