最近一时兴起打算研究下深度学习,这个名词近来很火,貌似成为了人工智能领域一根新的稻草。经过几天的查资料和看论文,已经初步有了第一印象,闲话少说,结合一些资料,进入正题。
深度学习的起源
深度学习(Deep Learning)是机器学习中一个非常接近AI的领域,其动机在于建立、模拟人脑进行分析学习的神经网络。深度学习属于无监督学习。
深度学习的概念源于人工神经网络的研究。深度学习是相对于简单学习而言的,目前多数分类、回归等学习算法都属于简单学习,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。含多隐层的多层感知器就是一种深度学习结构。深度学习模拟更多的神经层神经活动,通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示,深度学习的示意图如图1所示。
深度学习的概念由Hinton等人于2006年提出。基于深信度网(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。
图1 深度学习示意图
什么是深度学习
研究人员通过分析人脑的工作方式发现:通过感官信号从视网膜传递到前额大脑皮质再到运动神经的时间,推断出大脑皮质并未直接地对数据进行特征提取处理,而是使接收到的刺激信号通过一个复杂的层状网络模型,进而获取观测数据展现的规则。也就是说,人脑并不是直接根据外部世界在视网膜上投影,而是根据经聚集和分解过程处理后的信息来识别物体。因此视皮层的功能是对感知信号进行特征提取和计算,而不仅仅是简单地重现视网膜的图像。人类感知系统这种明确的层次结构极大地降低了视觉系统处理的数据量,并保留了物体有用的结构信息。深度学习正是希望通过模拟人脑多层次的分析方式来提高学习的准确性。
实际生活中,人们为了解决一个问题,如对象的分类(对象可是文档、图像等),首先必须做的事情是如何来表达一个对象,即必须抽取一些特征来表示一个对象,因此特征对结果的影响非常大。在传统的数据挖掘方法中,特征的选择一般都是通过手工完成的,通过手工选取的好处是可以借助人的经验或者专业知识选择出正确的特征;但缺点是效率低,而且在复杂的问题中,人工选择可能也会陷入困惑。于是,人们就在寻找一种能够自动的选择特征,而且还能保证特征准确的方法。DeepLearning就是能实现这一点,它能够通过多层次通过组合低层特征形成更抽象的高层特征,从而实现自动的学习特征,而不需要人参与特征的选取。
深度学习的核心思想
假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为: I=>S1=>S2=>…..=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。现在回到我们的主题DeepLearning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…, Sn。
另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可。深度学习的动机
学习基于深度架构的学习算法的主要动机是:
①不充分的深度是有害的;
在许多情形中深度2就足够(比如logicalgates, formal [threshold] neurons, sigmoid-neurons, Radial Basis Function [RB