浅说深度学习(1):核心概念

浅说深度学习(1):核⼼概念
本⽂⾸发于集智专栏
此为系列⾸篇,旨在提供直观简明的深度学习引导,涵盖深度学习的基本概念,⽽不设计很多数学和理论细节。当然如果要做更深⼊的研究,数学肯定是必不可少的,但是本系列主要还是⽤图⽚和类⽐等⽅式,帮助初学者快速建⽴⼤局观。
第⼀节介绍深度学习的主要概念。第⼆节交代⼀些历史背景,并解释训练过程、算法和实⽤技巧。第三节主讲序列学习,包括循环神经⽹络、LSTM和机器翻译中的编码-解码系统。第四节将转进到增强学习领域。
核⼼概念
机器学习(Machine Learning)
在机器学习中,我们(1)读取数据,(2)训练模型,(3)使⽤模型对新数据做预测。训练可以看作是当模型拿到新数据的时候、逐步学习⼀个的过程。在每⼀步,模型做出预测并且得到准确度的反馈。反馈的形式即是某种衡量标准(⽐如与正确解的距离)下的误差,再被⽤于修正预测误差。
学习是⼀个在参数空间⾥循环往复的过程:当你调整参数改正⼀次预测,但是模型却可能把原先对的⼜搞错了。需要很多次的迭代,模型才能具有良好的预测能⼒,这⼀“预测-修正”的过程⼀直持续到模型再⽆改良空间。
特征⼯程(Feature Engineering)
特征⼯程从数据中提取有⽤的模式,使之更容易被机器学习模型进⾏分类。⽐如,把⼀堆绿⾊或蓝⾊的像素区域作为标准,来判断照⽚上是陆⽣动物还是⽔⽣动物。这⼀特征对于机器学习模型⼗分有效,因为其限制了需要考虑的类别数量。
在多数预测任务中,特征⼯程是取得好结果的必备技能。然⽽,因为不同的数据集有着不同的特征⼯程⽅法,所以很难得出普遍规律,只有⼀些⼤概的经验,这使得特征⼯程更是⼀门艺术⽽⾮科学。⼀个数据集⾥极其关键的特征,到了另⼀个数据集⾥可能没有卵⽤(⽐如下⼀个数据集⾥全是植物)。正因为特征⼯程这么难,才会有科学家去研发⾃动提取特征的算法。
很多任务已经可以⾃动化(⽐如物体识别、语⾳识别),特征⼯程还是复杂任务中最有效的技术(⽐如Kaggle机器学习竞赛中的⼤多数任务)。
特征学习(Feature Learning)
特征学习算法寻同类之间的共有模式,并⾃动提取⽤以分类或回归。特征学习就是由算法⾃动完成的特征⼯程。在深度学习中,卷积层就极其擅长寻图⽚中的特征,并映射到下⼀层,形成⾮线性特征的层级结构,复杂度逐渐提升(例如:圆圈,边缘 -> ⿐⼦,眼睛,脸颊)。最后⼀层使⽤所有⽣成的特征来进⾏分类或回归(卷积⽹络的最后⼀层,本质上就是多项式逻辑回归)。
图1显⽰了深度学习算法⽣成的特征,很难得的是,这些特征意义都很明确,因为⼤多数特征往往不知所云,特别是循环神经⽹络、LSTM 或特别深的深度卷积⽹络。
深度学习(Deep Learning)
在层级特征学习中,我们提取出了好⼏层的⾮线性特征,并传递给分类器,分类器整合所有特征做出预测。我们有意堆叠这些深层的⾮线性特征,因为层数少了,学不出复杂特征。数学上可以证明,单层神经⽹络所能学习的最好特征,就是圆圈和边缘,因为它们包含了单个⾮线性变换所能承载的最多信息。为了⽣成信息量更⼤的特征,我们不能直接操作这些输⼊,⽽要对第⼀批特征(边缘和圆圈)继续进⾏变换,以得到更复杂的特征。
研究显⽰,⼈脑有着相同的⼯作机理:视锥细胞接受信息的第⼀层神经,对边缘和圆圈更加敏感,⽽更深处的⼤脑⽪层则对更加复杂的结构敏感,⽐如⼈脸。
层级特征学习诞⽣在深度学习之前,其结构⾯临很多严重问题,⽐如梯度消失——梯度在很深的层级处变得太⼩,以致于不能提供什么学习信息了。这使得层级结构反⽽表现不如⼀些传统机器学习算法(⽐如⽀持向量机)。
为解决梯度消失问题,以便我们能够训练⼏⼗层的⾮线性层及特征,很多新的⽅法和策略应运⽽⽣,“深度学习”这个词就来⾃于此。在2010年代早期,研究发现在GPU的帮助下,激励函数拥有⾜以训练出深层结构的梯度流,从此深度学习开始了稳步发展。
深度学习并⾮总是与深度⾮线性层级特征绑定,有时也与序列数据中的长期⾮线性时间依赖相关。对于序列数据,多数其他算法只有最后10个时间步的记忆,⽽LSTM循环神经⽹络(1997年由Sepp Hochreiter和Jürgen Schmidhuber发明),使⽹络能够追溯上百个时间步之前的活动以做出正确预测。尽管LSTM曾被雪藏将近10年,但⾃从2013年与卷积⽹络结合以来,其应⽤飞速成长。
基本概念
逻辑回归(Logistic Regression)
回归分析预测统计输⼊变量之间的关系,以预测输出变量。逻辑回归⽤输⼊变量,在有限个输类别变量中产⽣输出,⽐如“得癌了” / “没得癌”,或者图⽚的种类如“鸟” / “车” / “狗” / “猫” / “马”。
大家语文博客网逻辑回归使⽤logistic sigmoid函数(见图2)给输⼊值赋予权重,产⽣⼆分类的预测(多项式逻辑回归中,则是多分类)。
独眼喙鼻
逻辑回归与⾮线性感知机或没有隐藏层的神经⽹络很像。主要区别在于,只要输⼊变量满⾜⼀些统计性质,逻辑回归就很易于解释⽽且可靠。如果这些统计性质成⽴,只需很少的输⼊数据,就能产⽣很稳的模型。因⽽逻辑回归在很多数据稀疏的应⽤中,具有极⾼价值。⽐如医药或社会科学,逻辑回归被⽤来分析和解释实验结果。因为逻辑回归简单、快速,所以对⼤数据集也很友好。
在深度学习中,⽤于分类的神经⽹络中,最后⼏层⼀般就是逻辑回归。本系列将深度学习算法看作若⼲特征学习阶段,然后将特征传递给逻辑回归,对分类进⾏输⼊。
⼈⼯神经⽹络(Aritificial Neural Network)深圳住房公积金管理条例
⼈⼯神经⽹络(1)读取输⼊数据,(2)做计算加权和的变换,(3)对变换结果应⽤⾮线性函数,计算出⼀个中间状态。这三步合起来称为
⼀“层”,变换函数则称为⼀个“单元”。中间状态——特征——也是另⼀层的输⼊。
通过这些步骤的重复,⼈⼯神经⽹络学的了很多层的⾮线性特征,最后再组合起来得出⼀个预测。神经⽹络的学习过程是产⽣误差信号——⽹络预测与期望值的差——再⽤这些误差调整权重(或其他参数)使预测结果更加准确。
单元(Unit)
单元有时指⼀层中的激励函数,输⼊正是经由这些⾮线性激励函数进⾏变换,⽐如logistic sigmoid函数。通常⼀个单元会连接若⼲输⼊和多个输出,也有更加复杂的,⽐如长短期记忆(LSTM)单元就包含多个激励函数,并以特别的布局连接到⾮线性函数,或最⼤输出单元。LSTM经过对输⼊的⼀系列⾮线性变换,计算最终的输出。池化,卷积及其他输⼊变换函数⼀般不称作单元。
⼈⼯神经元(Artificial Neuron)
厄勒克特拉情结⼈⼯神经元——或神经元——与“单元”是同义词,只不过是为了表现出与神经⽣物学和⼈脑的紧密联系。实际上深度学习和⼤脑没有太⼤关系,⽐如现在认为,⼀个⽣物神经元更像是⼀整个多层感知机,⽽不是单个⼈⼯神经元。神经元是在上⼀次AI寒冬时期被提出来的,⽬的是将最成功的神经⽹络与失败弃置的感知机区别开来。不过⾃从2012年以后深度学习的巨⼤成功以来,媒体经常拿“神经元”
这个词来说事⼉,并把深度学习⽐作⼈脑的拟态。这其实是具有误导性,对深度学习领域来讲也是危险的。如今业界不推荐使⽤“神经元”这个词,⽽改⽤更准确的“单元”。
激励函数(Acitivation Function)
激励函数读取加权数据(输⼊数据和权重进⾏矩阵乘法),输出数据的⾮线性变换。⽐如output = max(0, weight_{data})就是修正线性激励函数(本质上就是把负值变成0)。“单元”和“激励函数”之间的区别是,单元可以更加复杂,⽐如⼀个单元可以包含若⼲个激励函数(就像LSTM单元)或者更复杂的结构(⽐如Maxout单元)。
线性激励函数,与⾮线性激励函数的区别,可以通过⼀组加权值之间的关系体现:想象4个点A1, A2, B1, B2。点(A1 / A2),和(B1 / B2)很接近,但是A1和B1, B2都很远,A2亦然。
经过线性变换,点之间的关系会变化,⽐如A1和A2远离了,但同时B1和B2也远离了。但是(A1 / A2)和(B1 / B2)的关系不变。
⽽⾮线性变换则不同,我们可以增加A1和A2的距离,同时减⼩B1和B2的距离,如此就建⽴了复杂度更⾼的新关系。在深度学习中,每⼀次层的⾮线性激励函数都创造了更复杂的特征。
⽽纯线性变换,哪怕有1000层,也可以⽤⼀个单层来表⽰(因为⼀连串的矩阵相乘可以⽤⼀个矩阵乘
法来表⽰)。这就是为什么⾮线性激励函数在深度学习中如此重要。
层(Layer)
层是深度学习更⾼级的基本构成单位。⼀层,就是接受加权输⼊、经过⾮线性激励函数变换、作为输出传递给下⼀层的容器。⼀层通常只含⼀种激励函数,池化、卷积等等,所以可以简单地与⽹络其他部分作对⽐。第⼀层和最后⼀层分别称为“输⼊层”和“输出层”,中间的都称作“隐藏层”。
卷积深度学习
卷积(Convolution)
卷积是⼀种数学操作,表述了混合两个函数或两块信息的规则:(1)特征映射或输⼊数据吗,与(2)卷积核混合,形成(3)变换特征映射。卷积也经常被当做是⼀种滤波器,卷积核(kernel)过滤特征映射以到某种信息,⽐如⼀个卷积核可能是只边缘,⽽抛掉其他信息。
过日子要有技术含量
卷积在物理和数学中都很重要,因为他建⽴了时域和空间(位置(0,30)的,像素值147)以及频域(幅度0.3,频率30Hz,相位60度)的桥梁。这⼀桥梁的建⽴是通过傅⾥叶变换:当你对卷积核与特征映
射都做傅⾥叶变换时,卷积操作就被极⼤简化了(积分变成了相乘)。
卷积,可以描述信息的扩散。⽐如当你把⽜奶倒进咖啡却不搅拌,这是扩散就发⽣了,⽽且可以通过卷积精确描述(像素向着图像边缘扩散)。在量⼦⼒学当中,这描述了当你测量⼀个量⼦的位置时,其在特定位置出现的概率(像素在边缘处于最⾼位置的概率)。在概率论中,者描述了互相关,也就是两个序列的相似度(如果⼀个特征(如⿐⼦)⾥的像素,与⼀个图像(⽐如脸)重叠,那么相似度就⾼)。在统计学中,卷积描述了正太输⼊⾎猎的加权动平均(边缘权重⾼,其他地⽅权重低)。另有其它很多不同⾓度的解释。
不过对于深度学习,我们也不知道卷积的哪⼀种解释才是正确的,互相关(cross-correlation)解释是⽬前最有效的:卷积滤波器是特征检测器,输⼊(特征映射)被某个特征(kernel)所过滤,如果该特征被检测到了,那么输出就⾼。这也是图像处理中互相关的解释。
池化/下采样(Pooling/Sub-Sampling)
知网向退休教授致歉池化过程从特定区域读取输⼊,并压缩为⼀个值(下采样)。在卷积神经⽹络中,信息的集中是种很有⽤的性质,这样输出连接通常接收的都是相似信息(信息像经过漏⽃⼀样,流向对应下⼀个卷积层的正确位置)。这提供了基本的旋转/平移不变性。⽐如,如果脸不在图⽚的中⼼位置,⽽是略有偏移,这应该不影响识别,因为池化操作将信息导⼊到了正确位置,故卷积滤波器仍能检测到脸。
池化区域越⼤,信息压缩就越多,从⽽产⽣更“苗条”的⽹络,也更容易配合显存。但是如果池化⾯积太⼤,丢失信息太多,也会降低预测能⼒。
卷积神经⽹络(Convolutional Neural Network, CNN)
卷积神经⽹络,或卷积⽹络,使⽤卷积层过滤输⼊以获得有效信息。卷积层有的参数是⾃动学习获得的,滤波器⾃动调整以提取最有⽤的信息(特征学习)。⽐如对于⼀个普适的物体识别任务,物体的形状可能是最有⽤的;⽽对于鸟类识别⼈物,颜⾊可能是最有⽤的(因为鸟的形状都差不多,⽽颜⾊却五花⼋门)。
⼀般我们使⽤多个卷积层过滤图像,每⼀层之后获得的信息,都越来越抽象(层级特征)。
卷积⽹络使⽤池化层,获得有限的平移/旋转不变性(即使⽬标不在通常位置,也能检测出来)。池化也降低了内存消耗,从⽽能够使⽤更多卷积层。
最近的卷积⽹络使⽤inception模块,即1x1的卷积核进⼀步降低内存消耗,加速计算和训练过程。
Inception
卷积⽹络中,inception模块的设计初衷是为了以更⾼的计算效率,执⾏更深、更⼤的卷积层。Inception使⽤1x1的卷积核,⽣成很⼩的特征映射。⽐如192个28x28的特征映射,可以经过64个1x1的卷积,被压缩成64个28x28的特征映射。因为尺⼨缩⼩了,这些1x1的卷积后⾯还可以跟跟⼤的卷积,⽐如3x3,5x5。除了1x1卷积,最⼤池化也⽤来降维。
Inception模块的输出,所有的⼤卷积都拼接成⼀个⼤的特征映射,再传递给下⼀层(或inception模块)。

本文发布于:2024-09-21 17:54:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/475130.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:特征   学习   卷积
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议