本文分为四章。

第一章 神经网络的发展

       深度学习(deep learning)作为机器学习算法中的一个新兴技术,其动机在于建立,模拟人脑进行分析学习的神经网络。 深度学习的本质是对观察数据进行分层特征表示,实现将低级特征进一步抽象成高级特征表示,而这一切都是通过神经网络来执行的。


图1.1
       深度学习主要借助了神经网络技术,神经网络的最基本单元是神经元,如图1.1所示。而神经网络的研究开始比较早,早期的感知器模型是最早的神经网络雏形,也称为单层神经网络(无隐藏层)。然而感知器只能做最简单的线性分类任务,甚至无法解决简单的异或问题。但是当网络增加一个计算层之后,不仅可以解决异或问题,而且具有非常好的非线性分类效果。1986年,Rumelhar和Hinton等人提出了反向传播(Back Propagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,从而带动了业界使用两层神经网络研究的热潮。
       与单层神经网络不同。理论证明,两层神经网络可以无限逼近任意连续函数。也就是说,面对复杂的非线性分类任务,两层(带一个隐藏层)神经网络可以分类的很好。但是神经网络仍然存在若干的问题:尽管使用了BP算法,一次神经网络的训练仍然耗时太久,而且困扰训练优化的一个问题就是局部最优解问题,这使得神经网络的优化较为困难。同时,隐藏层的节点数需要调参,这使得使用不太方便,工程和研究人员对此多有抱怨。神经网络的研究再次陷入了冰河期。

2006年,Hinton在《Science》和相关期刊上发表了论文,首次提出了深度信念网络[1]的概念。与传统的训练方式不同,深度信念网络有一个“预训练”(pre-training)的过程,这可以方便的让神经网络中的权值找到一个接近最优解的值,之后再使用微调(fine-tuning)技术来对整个网络进行优化训练。这两个技术的运用大幅度减少了训练多层神经网络的时间。他给多层神经网络相关的学习方法赋予了一个新名词—深度学习。

第二章 深度学习研究现状分析

       深度学习极大地促进了机器学习的发展,受到了世界各国相关研究人员和互联网公司的重视,目前深度学习应用最广泛的三个领域是语音识别,图像识别和自然语言处理。

深度学习在语音识别领域的研究现状

       长期以来,语音识别系统大多是采用高斯混合模型(GMM)来描述每个建模单元的概率模型。由于这种模型估计简单,方便使用大规模数据对其训练,该模型有较好的区分度训练算法,保证了该模型能够很好的训练。在很长时间内占据了语音识别应用领域主导性地位。但是GMM实质上一种浅层学习网络模型,特征的状态空间分布不能够被充分描述。而且,使用GMM建模数据的特征维数通常只有几十维,这使得特征之间的相关性不能被充分描述。最后GMM建模实质上是一种似然概率建模方式,即使一些模式分类之间的区分性能够通过区分度训练模拟得到,但是效果有限。

       从2009年开始,微软亚洲研究院的语音识别专家们和深度学习领军人物Hinton合作。2011年微软公司推出基于深度神经网络的语音识别系统,这一成果将语音识别领域已有的技术框架完全改变。采用深度神经网络后,样本数据特征间相关性信息得以充分表示,将连续的特征信息结合构成高维特征,通过高维特征样本对深度神经网络模型进行训练。由于深度神经网络采用了模拟人脑神经架构,通过逐层的进行数据特征提取,最终得到适合进行模式分类处理的理想特征。

深度学习在图像识别领域的研究现状

        对于图像的处理是深度学习算法最早尝试应用的领域。2012年的ImageNet竞赛中,Krizhevsky等人[2]训练了一个大型的深度卷积神经网络AlexNet,它包含了8个学习层:5个卷积层和3个全连接层。Krizhevsky等人成功借助了ImageNet这个足够大的数据集,借助了GPU的强大计算能力,借助了深层的CNN网络,借助了随机梯度下降(SGD)和Dropout等优化技巧,借助了训练数据扩充策略,最终赢得了2012年的ILSVRC,实现了top-5的错误率为15.3%的好成绩。无论如何,他们靠着深度学习震惊了机器学习领域,从此大量的研究人员开始进入这个领域,一发不可收拾。2013年的ZFNet[3]错误率降到了11.2%。2014年Christian Szegedy等人[4]设计的GoogLeNet是一个22层的卷积神经网络,在ILSVRC2014上top-5的错误率降到了6.7%。2015年,微软亚洲研究院的Kaiming He等人[5]设计了一个多达152层的ResNet架构,它比之前的深度神经网络都深,但却降低了复杂度,从而更易于训练,ResNet的错误率也降到了3.6%。而人类的水平也仅仅是5%-10%,由此可见,深度学习网络已经跟人类的分辨能力相当了。

深度学习在自然语言处理领域的研究现状

       自然语言处理问题是深度学习在除了语音和图像处理之外的另一个重要的应用领域。数十年以来,自然语言处理的主流方法是基于统计的模型,人工神经网络也是基于统计方法模型之一,但在自然语言处理领域却一直没有被重视。语言建模时最早采用神经网络进行自然语言处理的问题。美国NEC研究院最早将深度学习引入到自然语言处理研究中,其研究院从2008年起采用将词汇映射到一维矢量空间和多层一维卷积结构去解决词性标注、分词、命名实体识别和语义角色标注四个典型的自然语言处理问题。他们构建了一个网络模型用于解决四个不同问题,都取得了相当精确的结果。总体而言,深度学习在自然语言处理上取得的成果和在图像语音识别方面相差甚远,仍有待深入研究。

第三章 技术挑战分析与解决方案

        深度学习主要利用了神经网络技术,因此深度学习所面临的技术挑战主要来自于神经网络目前所面临的问题。随着层数的不断增加,神经网络中的各种问题开始涌现,总结为以下几点。

可用的带标签数据集的较少

        深度学习是一种有监督的学习方法,有监督的方法通过训练数据学习得到一个分类模型,并将该分类模型应用到对未知数据(测试数据)的分类中去。因此,分类模型的好坏强烈依赖于训练数据集的数量和质量,一个好的训练数据集能够得到一个好的分类模型,从而能够对未知数据得到一个较好的分类结果。

        目前,可用的带标签的训练数据集仍然比较少,这可能会限制深度学习的进一步发展。2012年的ImageNet竞赛中,提供了超过22000类别的多于1500万的高分辨率照片,这使得AlexNet的成功成为可能。但是随着深度神经网络的进一步加深,例如2015年的ILVSRC竞赛中的ResNet已经达到惊人的152层,训练这样的一个深层的神经网络需要更大的数据集。因此,需要获取更大的带标签数据集,使得深度学习的进一步加深成为可能。

网络的复杂度上升和可解释性降低

       深度学习的一个很大的局限性是神经网络的可解释性不强,有人形象的把神经网络比喻成一个黑盒,就是因为它的内部知识的表示很不直观,用加权链连接单元的网络表示的知识让人很难解释。因此,提取隐藏在训练后的神经网络中的知识以及如何表示这些知识也是一个很重要的研究方向,包括从网络中提取规则等。

       随着深度学习的进一步加深,深度神经网络的复杂度也逐渐上升。以2012年的ILSVRC竞赛为例,AlexNet的层数达到了8层,而其参数和神经元的个数是巨大的,AlexNet具有6000万个参数和65万个神经元,其复杂度可想而知。并且,越来越多的参数不仅需要更大的数据集来训练,同时需要更强的计算能力,否则神经网络的训练时间将是不可忍受的。

过拟合

       神经网络训练的过程其实就是不断调整网络中神经元之间的连接权重,使得网络预测的输出值与实际值之间的误差最小化,这种过程不断进行下去,直到权重收敛。在这个过程中,网络的训练误差不断减小,在未知数据上的测试误差也不断减小,但当训练误差减到某个值之后,网络的预测误差反而增大,说明泛化能力降低,这就是神经网络建模过程中的过拟合现象。

       多层神经网络有很强的非线性拟合能力,可映射任意复杂的非线性关系,然而神经网络强大的学习能力同时也是它的一个缺点,过度的学习可能导致神经网络陷入过拟合。最近几届的ILSVRC会议上提出的深度神经网络都不同程度的对过拟合提出了解决方案,由此可见过拟合带给神经网络的重大影响。

       在神经网络中,数据扩增和Dropout是两种常用的正则化方法。数据扩增其实就是获取更多的数据,然而,数据通常是难以获取的和昂贵的。很多时候,收集更多的数据意味着需要耗费更多的人力物力,效率特别低。所以,可以在原始数据上做些改动,获得更多的数据。以图片数据集为例,可以做各种变换,比如讲原始图片旋转一个角度、添加随机噪声、截取原始图片的一部分等。Dropout每次将一半的隐层单元随机删除,一直迭代,直到训练结束。可以简单地这样解释,运用了dropout的训练过程,相当于训练了很多个只有半数隐层单元的神经网络,每一个这样的半数网络,都可以给出一个分类结果,这些结果有的是正确的,有的是错误的。随着训练的进行,大部分半数网络都可以给出正确的分类结果,那么少数的错误分类结果就不会对最终结果造成大的影响。

局部最优解

        神经网络的训练存在多个极小点,梯度下降不能保证求出全局最优解。目前,解决这个问题已经提出了很多方案。使用改进的BP算法,增加动量项,或者自适应学习率;和别的优化算法组合,例如遗传算法优化初始权值,提前锁定全局最优;重新训练,每次训练的结果都是不同的,下一次的训练很有可能不会陷入局部极小;更改学习函数、训练函数再次训练。

梯度消失现象

       具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。这就是梯度消失的现象。

       引入Relu代替sigmoid激活函数。采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练。而Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。

第四章 深度学习的未来

       无监督学习因其不需要带标签的训练数据集而广泛应用,但是在深度学习中它已经被有监督学习的成功而覆盖。但是,无监督学习还是应该引起我们的关注。很多时候人类的意识是基于对周围事物的观察,而不是基于训练而得到的结果。

       目前深度学习在自然语言处理领域的应用远远低于在图像领域取得的成功。语言与语音、图像不同,是特殊的人工符号系统,将深度学习应用于自然语言处理需要进行更多的研究和探索:针对特殊任务的词汇表达的学习以及词汇之间关系的探索越来越受到重视;处理自然语言的结构化输出需要更为复杂的神经网络;复杂神经网络又对高效和并行化的训练算法提出了新的要求。我们相信,随着可用的训练数据越来越多,计算能力会越来越强,在自然语言处理领域,深度学习也会更有用武之地。


参考文献

[1] HintonG E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J].Neural computation, 2006, 18(7): 1527-1554.

[2] Krizhevsky A, Sutskever I,Hinton G E. Imagenet classification with deep convolutional neuralnetworks[C]//Advances in neural information processing systems. 2012:1097-1105.

[3] Zeiler M D, Fergus R.Visualizing and understanding convolutional networks[C]//European Conference onComputer Vision. Springer International Publishing, 2014: 818-833.

[4] Szegedy C, Liu W, Jia Y,et al. Going deeper with convolutions[C]//Proceedings of the IEEE Conference onComputer Vision and Pattern Recognition. 2015: 1-9.

[5] He K, Zhang X, Ren S, etal. Deep residual learning for image recognition[J]. arXiv preprintarXiv:1512.03385, 2015.

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐