浅谈深度学习
2016-08-30李开菊郑波尽
李开菊 郑波尽
摘要:深度学习是机器学习研究中一个新的领域,它是机器学习中神经网络的发展。深度学习的主要目的在于模拟人脑进行分析与学习,希望计算机也能像人脑一样会学习。本文首先介绍深度学习产生的原因,然后分析深度学习产生的理论依据。之后简单介绍深度学习训练深层神经网络的基本过程,最后总结当前存在的问题以及发展的方向。
关键词:深度学习;神经网络;机器学习
中图分类号:TP181 文献标识码:A DOI:10.3969/j.issn.1003 6970.2016.05.020
本文著录格式:李开菊,郑波尽.浅谈深度学习[J].软件,2016,37(5):81-83
0.引言
现在大多数分类和回归学习方法都为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到了一定制约。深度学习模型采用了与神经网络相类似的分层结构,其模型由输入层、隐藏层(含多层)、输出层组成的多层神经网络构成,在模型中只有相邻层节点之间相互连接,位于同一层的节点之间相互没有连接,模型中的每一层都可以看做是一个逻辑回归模型。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并且具有从少数样本中学习到数据本质特征的能力。从早期的浅层结构模型到现在的深度学习模型经过了将近十几年的发展。所以,本文将简单的介绍深度学习产生的原因以及产生的理论依据,然后介绍深度学习模型的基本训练过程,最后进行总结以及分析未来的发展方向。
1.深度学习产生的原因
1.1为了更好的特征提取
机器学习的研究主旨是使用计算机模拟人类的学习活动,它是研究计算机识别现有知识、获取新知识、不断改善性能和实现自身完善的方法。虽然机器学习这一领域已经发展了将近几十年的时间,但是到目前为止仍然存在许多尚未解决的问题。到目前为止,机器学习解决问题的一般思路都是通过传感器获取数据,然后通过对获取的数据进行预处理、特征提取、特征选择等几个步骤,最后的部分就是机器学习,其中中间部分也可以概括得称为特征表达。对一个机器学习算法的准确性有重要影响的是特征表达,当然系统主要的测试和计算工作都耗在这一大部分,但是在实际中这一部分主要靠人工完成,也就是通过人工进行特征的提取。但是,人工特征提取往往需要大量的人力,同时也需要提取者有较强的专业知识,特征选取的好坏往往与运气有很大关系,并且需要大量的时间去调节。就在人们为了人工特征提取带来的不便而烦恼时,深度学习模型产生了。深度学习能够克服人工特征选取的困难,它可以实现自动学习特征。由于是自动学习特征,所以深度学习是一种无监督学习。
1.2参考人的分层视觉处理系统
1981年诺贝尔医学奖的获得者David Hubel、TorstenWiesel以及Roger Sperry,前两位科学家通过在猫的后脑上开一个微小的小洞,与此同时向洞里面插入电极,然后将各种各样而且亮度不同的物体展现在小猫的眼前,而且在展示每个物体时会以不同的角度与位置。通过这种让小猫瞳孔接受不同类型、不同强弱的刺激来测量神经元的活跃程度。通过这个实验我们了解到当小猫的瞳孔扫描到某物体的边缘时,被边缘指向的那个方向的神经元状态就会被激活,没有被指向的神经元仍然处于抑制状态。这个结论为后来发现人的视觉信息处理系统是分级的起到了激发作用。同时还得出结论:高层的特征表达是低层特征的不断抽象组合的结果。那么深度学习模型就参考了人的视觉信息处理系统是分层的这一特点,将原来的浅层模型扩展为现在的深层模型。
2.深度学习产生的理论依据
2.1浅层结构函数表示能力的局限性
20世纪80年代末期,人工神经网络的反向传播算法的出现给机器学习的研究带来了新的希望,同时也掀起了基于统计模型的机器学习热浪。经过试验发现,利用BP算法可以让一个神经网络模型通过大量的训练样本学习出规律,从而可以通过学习到的规律对未知的数据进行分类或者预测。这种通过学习规律的机器学习方法与原始的人工规则系统相比表现出了强大的优越性。需要注意的是,这时的人工神经网络是一种仅含有一层隐藏层的浅层神经网络。
BP算法简单的讲就是采用迭代的方式训练整个网络,由最开始的对模型的参数随机设置初始值,对训练数据计算模型的输出值,然后计算这个输出值与给定的训练数据的输出值之间的差值,这个差值的平方的1/2称为损失函数,我们的目的就是通过梯度下降法去改变前面各层的参数使得损失函数最小。虽然BP算法是一种金典的训练多层网络的学习算法,但是对仅含有几层的神经网络就表现的很不理想了。最致命的问题是,BP算法有可能出现局部最小问题。总的来说BP算法存在的问题:
(1)该算法只针对有标签数据训练,而实际中很多数据都是无标签的,例如大脑就可以通过无标签数据进行学习:
(2)由于梯度越来越小,当达到“0”时,也就意味着参数的迭代更新将停止,若误差函数仅有一个局部最小,那么找到的局部最小就是全局最小:若误差函数具有多个局部最小值,则不能保证找到的解就是全局最小。
2.2深层结构函数较浅层结构函数具有优势
2006年,Geoffrey Hinton教授和他的学生在《科学》上发表了一篇文章,正是这篇文章的发表使得深度学习在整个学术界甚至工业界都成为了关注的焦点。这篇文章主要有两个观点:
(1)含有多个隐藏层的神经网络模型与比早期的浅层模型相比具有更优异的特征学习能力,同时学习到的特征更能刻画数据的本质,也更有利于数据分类以及可视化;
(2)含有多层影藏层的神经网络在训练上虽有难度,但是可以通过“逐层初始化”的方式来克服。
那么,深度学习的本质就是通过构建一个模型,这个模型包含多个隐藏层,大量的训练样本通过这个深层模型,学习一个更有利于分类的特征。与浅层的学习模型相比,深层模型强调的是模型的深度,这里的深度一般指的是隐藏层的深度。同时,深层模型更看重特征学习的重要性。
3.基本训练过程
对含有多层隐藏层的网络的所有层进行训练会得到较高的复杂度。倘若每次只训练网络中的一层,那么误差就会琢层传递。由于深度网络的神经元和参数太多,就会出现严重的欠拟合现象。在2006年,hinton提出了一个利用无标签数据建立多层神经网络模型的有效方法,算法的核心思想简单首先每次只训练一层网络,然后对整个网络进行参数微调,算法的具体思想如下:
(1)首先每次只训练一层网络,从而琢层构建网络;
(2)直至所有层网络训练完以后,对整个网络进行参数调优;
4.总结
深度学习算法自动的提取分类需要低层次或者高层次特征组合。从原始图像去学习得到它的一个低层次表达,然后在这些低层次表达的基础上组合构建高层次的表达,然后不断重复迭代这个过程,最后得到一个比较完整的高层次特征表达。深度学习比传统的机器学习能够获得更优的特征表达。由于模型的层次数量较大,所以模型对大规模的数据也同样适用。因此对于图像以及语音具有不明显特征的问题,深度学习也可以通过大量的训练数据取得更好的效果。当然,深度目前仍有大量工作需要研究。比如,在工程实现上,由于深层神经网络的训练时间相对较长,那么容易出现过拟合现象。从而使得模型的建模以及推广能力相对较差,那么如何优化训练算法使得可以在很短的时间内达到最优解,同时保证模型的推广性能良好,是目前需要解决的重要问题。另一个值得思考的问题,目前的深度模型要求层内无连接,层间有链接,那么如果层内有链接是否会使得模型更容易训练呢?