当前位置: 首页 > 科技观察

深度学习入门

时间:2023-03-17 10:11:19 科技观察

2016年,谷歌的人工智能程序阿尔法狗(AlphaGo)与世界围棋高手李世石对战,最终以4:1的比分获胜。话题热度达到了新的高潮。然而,什么是深度学习?本文将揭开深度学习的面纱。?1什么是深度学习以及深度学习的基本思想??2人工智能是如何发展起来的??3机器学习的相关技术有哪些??4Deeplearning与神经网络的异同??5Deeplearning训练过程??6深度学习的研究现状、应用领域和发展趋势如何?1什么是深度学习以及深度学习的基本思想?深度学习是机器学习的一个新分支,它基于人工神经网络模拟人脑的分析和学习机制,对图像、声音、文本等数据进行解释。人工神经网络(ANN)是深度学习算法的基础,简称神经网络(NN)。神经网络的思想是借鉴动物神经网络的行为特点,对信息进行分布式并行处理的数学算法模型。深度学习通过不断学习,将低层特征组合起来形成更抽象的高层特征,从而发现数据的分布式特征。在深度学习中,计算机可以通过自己观察学习数据和结果来自动解决问题。在深度学习算法的开发中,Caffe受到广大研究人员和开发人员的欢迎,是一个优秀的神经网络深度学习框架。假设我们有一个系统S,它有n层(S1,...Sn),输入为I,输出为O,图形表示为:I=>S1=>S2=>.....=>Sn=>O,如果输出O等于输入I,即输入I经过这个系统改变后不会有信息丢失(呵呵,大牛说,这是不可能的。有句话说在信息论中“信息逐层丢失”(informationprocessingInequality),假设处理a信息得到b,再处理b得到c,那么可以证明a和c的互信息不会超过a和b的互信息。这说明信息处理不会增加信息,大部分处理会丢失信息。当然,如果是无用的信息就好了),保持不变,这意味着输入I在没有任何信息损失的情况下穿过每一层Si,即在任意一层Si,它都是另一种表示原始信息(即输入I)。现在回到我们的DeepLearning主题,我们需要自动学习特征,假设我们有一堆输入I(比如一堆图片或者文本),假设我们设计一个系统S(有n层),我们调整参数在系统中,使其输出仍然是输入I,那么我们就可以自动得到输入I的一系列层次特征,即S1,...,Sn。对于深度学习,思路是堆叠多个层,也就是说,本层的输出作为下一层的输入。这样就可以实现输入信息的层次化表达。另外,之前的假设是输出严格等于输入。这个限制太严格了。我们可以稍微放宽此限制。例如,我们只需要使输入和输出之间的差异尽可能小即可。这种放松将导致另一种深度学习方法。以上就是深度学习的基本思想。2人工智能是如何发展起来的?人工智能主要经历了从浅层学习(ShallowLearning)到深度学习(DeepLearning)的发展过程。1956年,“人工智能”(AI)一词首次出现在达特茅斯大学召开的会议上,标志着人工智能的正式诞生。从1960年代到70年代,人工智能的应用开始走向实用、研发和各类专家系统。20世纪90年代随着互联网的发展,各种浅层机器学习模型被提出,如支持向量机(SupportVectorMachines,SVM)、Boosting、最大熵法(LogisticRegression,LR)等。现阶段,浅层学习是机器学习的第一波浪潮。现阶段大数据+深度模型是机器学习的第二波浪潮。2006年,加拿大多伦多大学机器学习领域的领军人物GeoffreyHinton和他的学生在Science上发表了一篇文章,揭示了两个主要信息。一是多隐藏层的人工神经网络学习到的特征数据有利于可视化。还是分类,二是“逐层初始化”可以有效克服深度神经网络训练中的难点。目前分类、回归等学习方法大多为浅层结构算法,在有限样本和计算单元的情况下表达复杂函数的能力有限,其对复杂分类问题的泛化能力在一定程度上受到限制.深度学习可以通过学习深度非线性网络结构实现复杂函数逼近,表征输入数据的分布式表示,展示出从少量样本集中学习数据集本质特征的强大能力。(多层的好处是可以用更少的参数表达复杂的函数。)深度学习的本质是通过建立一个隐藏层多、训练数据海量的机器学习模型,学习到更多有用的特征,从而最终提高分类能力或预测准确性。因此,“深度模型”是手段,“特征学习”是目的。与传统的浅层学习不同,深度学习的不同之处在于:1)强调模型结构的深度,通常有5层、6层甚至10层的隐藏层节点;2)明确突出了特征学习的重要性,即通过逐层特征变换,将样本在原始空间中的特征表示变换到新的特征空间中,从而使分类或预测变得更加容易。与通过人工规则构造特征的方法相比,利用大数据学习特征能够更好地描述数据丰富的内部信息。目前,深度神经网络(DNN)技术应用广泛,大型知名互联网公司争相投入资源研究探索,具有重要的研究意义和价值。3机器学习的相关技术有哪些?从学习形式上可以分为有监督学习和无监督学习。监督学习由输入对象和预期输出值组成。它是一项机器学习任务,它从标记的训练数据中推断出一个函数,并从训练数据集中学习。得到一个函数,输入新的数据,通过这个函数预测结果。无监督学习是从未标记的训练数据中学习数据的信息或特征,以发现训练样本中的结构知识。许多使用的方法都是基于数据挖掘方法;从学习方法上可分为经验归纳学习、分析学习、类比学习、遗传算法、连接学习和强化学习;其他相关技术包括BP(BackPropagation)神经网络——通过误差反向传播算法训练的多层前馈网络,包括输入层、隐藏层和输出层、随机森林(RandomForests)、支持向量机(SupportVectorMachine,SVM)——是一种监督学习模型,关键是核函数,将输入隐式映射到高维特征空间,有效地进行线性和非线性分类,深度学习(DeepLearning)——典型的神经网络使用大量的卷积层,利用空间的相对关系来减少参数的数量来提高训练性能。4深度学习与神经网络的异同?深度学习的概念起源于人工神经网络的研究。具有多个隐藏层的多层感知器是一种深度学习结构。深度学习结合低层特征,形成更抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习本身就是机器学习的一个分支,可以简单理解为神经网络的发展。大约二十、三十年前,神经网络曾经是ML领域特别火热的方向,但后来逐渐淡出。原因包括以下几个方面:1)相对容易过拟合,参数难以调优。少花样;2)训练速度比较慢,在层数较少(小于等于3)时效果并不比其他方法好;所以中间大概有20年的时间,神经网络几乎没有受到关注。以上是支持向量机和提升算法的世界。然而,一个痴情的老先生Hinton,他坚持了下来,终于(与Bengio、Yann.lecun等)提出了一个实用的深度学习框架。Deeplearning与传统神经网络之间有许多相同点和不同点。两者的相似之处在于深度学习采用了类似于神经网络的分层结构。该系统由输入层、隐藏层(多层)、输出层组成的多层网络组成,如下图所示。上图中的每个圆圈都是一个神经元,每条线代表神经元之间的连接。我们可以看到,上面的神经元分为多层,层与层之间的神经元是相连的,层与层之间的神经元是不相连的。最左边的层称为输入层,负责接收输入数据;最右边的一层称为输出层,我们可以从这一层得到神经网络的输出数据。输入层和输出层之间的层称为隐藏层。每一层都可以看作是一个逻辑回归模型;这种分层结构比较接近人脑的结构。为了克服神经网络训练中存在的问题,深度学习采用了与神经网络截然不同的训练机制。在传统的神经网络中,采用反向传播的方法。简单的说,它是用迭代算法训练整个网络,随机设置初始值,计算当前网络的输出,然后根据当前输出和标签的差值计算当前输出。改变前面层的参数,直到收敛(整体是一种梯度下降法)。而深度学习整体上是一个分层的训练机制。这样做的原因是,如果使用反向传播机制,对于一个深度网络(7层以上),到前层的残差传播已经变得太小,出现所谓的梯度扩散(gradientdiffusion)。我们接下来讨论这个问题。5深度学习训练过程?5.1为什么传统的神经网络训练方法不能用于深度神经网络?BP算法是传统训练多层网络的典型算法。事实上,这种训练方法对于只有几层的网络并不理想。深层架构(涉及多层非线性处理单元)的非凸目标成本函数中普遍存在的局部最小值是训练困难的主要来源。BP算法存在的问题:(1)梯度越来越稀疏:纠错信号从顶层开始越来越小;(2)收敛到局部最小值:尤其是当它开始远离最优区域时(随机值初始化会导致这种情况);(3)一般情况下,我们只能使用有标签的数据进行训练:但大部分数据都是无标签的,大脑可以从无标签的数据中学习;5.2如果深度学习训练过程同时训练所有层,时间复杂度会过高;如果每次训练一层,偏差将逐层传递。这样会面临和上面的监督学习相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多)。2006年,hinton提出了一种在无监督数据上构建多层神经网络的有效方法。简单来说,分为两步,一个是每次训练一层网络,另一个是调优,使得原始表示x向上生成。高层表示r的高层表示r与高层表示r向下生成的x'尽可能一致。方法是:1)先逐层构建一个单层神经元,这样每次都训练一个单层网络。2)当所有层都训练好后,Hinton使用wake-sleep算法进行调优。将除最顶层以外的其他层之间的权重改为双向的,使得最顶层仍然是单层神经网络,而其他层成为图模型。向上权重用于“认知”,向下权重用于“生成”。然后使用Wake-Sleep算法调整所有权重。让认知和生成达成共识,即保证生成的顶层表示能够尽可能正确地还原底层节点。例如,顶层的一个节点代表一张人脸,那么所有人脸的图像都应该激活这个节点,得到的图像应该能够代表一个粗略的人脸图像。Wake-Sleep算法分为唤醒和睡眠两部分。1)唤醒阶段:认知过程,通过外部特征和向上权重(认知权重)生成每一层的抽象表示(节点状态),并使用梯度下降修正层与层之间的下行权重(生成权重)。也就是“如果现实和我想象的不一样,就改变我的权重,让我想象的是这个样子”。2)睡眠阶段:生成过程,通过顶层表示(清醒时学到的概念)和向下权重,生成底层状态,同时修改层间向上权重。即“如果梦中的场景不是我脑海中对应的概念,改变我的认知权重,让场景在我看来就是这个概念”。深度学习训练过程如下:1)采用自下而上的无监督学习(即从底层开始,逐层训练到顶层):使用未校准数据(校准数据也可以)训练逐层计算每一层的参数,这一步可以看作是一个无监督的训练过程,这是与传统神经网络最不同的部分(这个过程可以看作是特征学习过程):具体来说,先训练第一层使用未校准的数据,在训练时先学习第一层的参数(这一层可以看作是最小化输出和输入差异的三层神经网络的隐藏层),由于模型容量的限制和稀疏约束,得到的模型可以学习数据本身的结构,从而获得比输入更具表现力的特征;学习完第n-1层后,将第n-1层的输出作为第n层的输入,对第n层进行训练,从而得到每一层。参数;2)自上而下的监督学习(即通过标注数据进行训练,自上而下传递误差,微调网络):进一步微调整个multi-layer,根据在第一步模型的参数,这一步是有监督的训练过程;第一步类似于神经网络的随机初始化初值过程,因为DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,所以这个初值更接近全局最优,从而达到更好的效果;所以深度学习的好的效果很大程度是归功于第一步的特征学习过程。6深度学习的研究现状、应用领域和发展趋势如何?在国外,2012年Hinton和他的学生Alex将神经模型应用到ImageNet上,取得了惊人的效果。今年是深度学习研究和应用爆发的一年。深度学习在图像分类、图像定位、图像检测、语音识别等领域取得了丰硕的成果,谷歌的AlphaGo就不细说了。BAT、华为、京东等国内互联网巨头纷纷成立人工智能研究院,力争人工智能在家居、汽车、无人系统、安防等领域的突破创新应用。参考文献:[1]乐毅,王斌.深度学习——Caffe经典模型详解与实践[M].北京:电子工业出版社,2016.https://blog.csdn.net/zouxy09/article/details/8775518https://www.zybuluo.com/hanbingtao/note/433855