DeepLearning(深度学习)之(一)特征以及训练方法

DeepLearning(深度学习)之(⼀)特征以及训练⽅法
⽬录:
⼀、概述
⼆、背景中国与法国的关系
三、⼈脑视觉机理
四、关于特征
4.1、特征表⽰的粒度
4.2、初级(浅层)特征表⽰
4.3、结构性特征表⽰
4.4、需要有多少个特征?
五、Deep Learning的基本思想
六、浅层学习(Shallow Learning)和(Deep Learning)
七、Deep learning与Neural Network
⼋、Deep learning训练过程
8.1、传统神经⽹络的训练⽅法
8.2、deep learning训练过程
九、Deep Learning的常⽤模型或者⽅法
9.1、AutoEncoder⾃动编码器
9.2、Sparse Coding稀疏编码
9.3、Restricted Boltzmann Machine(RBM)限制波尔兹曼机
9.4、Deep BeliefNetworks深信度⽹络
9.5、Convolutional Neural Networks卷积神经⽹络
⼗、总结与展望
⼗⼀、参考⽂献和Deep Learning学习资源
⼀、概述
Artificial Intelligence,也就是⼈⼯,就像长⽣不⽼和星际漫游⼀样,是⼈类最美好的梦想之⼀。虽然计算机技术已经取得了长⾜的进步,但是到⽬前为⽌,还没有⼀台电脑能产⽣“⾃我”的意识。是的,在⼈类和⼤量现成数据的帮助下,电脑可以表现的⼗分强⼤,但是离开了这两者,它甚⾄都不能分辨⼀个喵星⼈和⼀个汪星⼈。
图灵(图灵,⼤家都知道吧。计算机和的⿐祖,分别对应于其著名的“图灵机”和“图灵”)在 1950 年的论⽂⾥,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是⼈还是电脑。这⽆疑给计算机,尤其是⼈⼯智能,预设了⼀个很⾼的期望值。但是半个世纪过去了,⼈⼯智能的进展,远远没有达到图灵试验的标准。这不仅让多年翘⾸以待的⼈们,⼼灰意冷,认为⼈⼯智能是忽悠,相关领域是“伪科学”。
但是⾃ 2006 年以来,领域,取得了突破性的进展。图灵试验,⾄少不是那么可望⽽不可及了。⾄于技术⼿段,不仅仅依赖于对的并⾏处理能⼒,⽽且依赖于。这个算法就是,Deep Learning。借助于 Deep Learning 算法,⼈类终于到了如何处理“抽象概念”这个亘古难题的⽅法。
2012年6⽉,《纽约时报》披露了Google Brain项⽬,吸引了公众的⼴泛关注。这个项⽬是由著名的斯坦福⼤学的机器学习教授Andrew Ng和在⼤规模计算机系统⽅⾯的世界顶尖专家JeffDean共同主导,⽤16000个CPU Core的并⾏计算平台训练⼀种称为“深度神经⽹络”(DNN,Deep Neural Networks)的机器学习模型(内部共有10亿个节点。这⼀⽹络⾃然是不能跟⼈类的神经⽹络相提并论的。要知道,⼈脑中可是有150多亿个神经元,互相连接的节点也就是突触数更是如银河沙数。曾经有⼈估算过,如果将⼀个⼈的⼤脑中所有神经细胞的轴突和树突依次连接起来,并拉成⼀根直线,可从地球连到⽉亮,再从⽉亮返回地球),在和图像识别等领域获得了巨⼤的成功。
项⽬负责⼈之⼀Andrew称:“我们没有像通常做的那样⾃⼰框定边界,⽽是直接把海量数据投放到算法中,让数据⾃⼰说话,系统会⾃动从数据中学习。”另外⼀名负责⼈Jeff则说:“我们在训练的时候从来不会告诉机器说:‘这是⼀只猫。’系统其实是⾃⼰发明或者领悟了“猫”的概念。”
2012年11⽉,微软在中国天津的⼀次活动上公开演⽰了⼀个全⾃动的同声传译系统,讲演者⽤英⽂演讲,后台的计算机⼀⽓呵成⾃动完成语⾳识别、英中和中⽂语⾳合成,效果⾮常流畅。据报道,后⾯⽀撑的关键技术也是DNN,或者深度学习(DL,DeepLearning)。
齿轮磨损修复2013年1⽉,在百度年会上,创始⼈兼CEO李彦宏⾼调宣布要成⽴百度研究院,其中第⼀个成⽴的就是“深度学习研究所”(IDL,Institue of Deep Learning)。
为什么拥有⼤数据的互联⽹公司争相投⼊⼤量资源研发深度学习技术。听起来感觉deeplearning很⽜那样。那什么是deep learning?为什么有deep learning?它是怎么来的?⼜能⼲什么呢?⽬前存在哪些困难呢?这些问题的简答都需要慢慢来。咱们先来了解下机器学习(⼈⼯智能的核⼼)的背景。
⼆、背景
机器学习(Machine Learning)是⼀门专门研究计算机怎样模拟或实现⼈类的学习⾏为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善⾃⾝的性能的学科。机器能否像⼈类⼀样能具有学习能⼒呢?1959年美国的塞缪尔(Samuel)设计了⼀个下棋程序,这个程序具有学习能⼒,它可以在不断的对弈中改善⾃⼰的棋艺。4年后,这个程序战胜了设计者本⼈。⼜过了3年,这个程序战胜了美国⼀个保持8年之久的常胜不败的冠军。这个程序向⼈们展⽰了机器学习的能⼒,提出了许多令⼈深思的社会问题与哲学问题(呵呵,⼈⼯智能正常的轨道没有很⼤的发展,这些什么哲学伦理啊倒发展的挺快。什么未来机器越来越像⼈,⼈越来越像机器啊。什么机器会反⼈类啊,ATM是开第⼀的啊等等。⼈类的思维⽆穷啊)。
机器学习虽然发展了⼏⼗年,但还是存在很多没有良好解决的问题:
例如图像识别、语⾳识别、理解、天⽓预测、基因表达、内容推荐等等。⽬前我们通过机器学习去解决这些问题的思路都是这样的(以视觉感知为例⼦):
从开始的通过传感器(例如CMOS)来获得数据。然后经过预处理、特征提取、特征选择,再到推理、预测或者识别。最后⼀个部分,也就是机器学习的部分,绝⼤部分的⼯作是在这⽅⾯做的,也存在很多的paper和研究。
⽽中间的三部分,概括起来就是特征表达。良好的特征表达,对最终算法的准确性起了⾮常关键的作⽤,⽽且系统主要的计算和测试⼯作都耗在这⼀⼤部分。但,这块实际中⼀般都是⼈⼯完成的。靠⼈⼯提取特征。
截⽌现在,也出现了不少NB的特征(好的特征应具有不变性(⼤⼩、尺度和旋转等)和可区分性):例如Sift的出现,是局部图像特征描述⼦研究领域⼀项⾥程碑式的⼯作。由于SIFT对尺度、旋转以及⼀定视⾓和光照变化等图像变化都具有不变性,并且SIFT具有很强的可区分性,的确让很多问题的解决变为可能。但它也不是万能的。
然⽽,⼿⼯地选取特征是⼀件⾮常费⼒、启发式(需要专业知识)的⽅法,能不能选取好很⼤程度上靠经验和运⽓,⽽且它的调节需要⼤量的时间。既然⼿⼯选取特征不太好,那么能不能⾃动地学习⼀些特征呢?答案是能!Deep Learning就是⽤来⼲这个事情的,看它的⼀个别名UnsupervisedFeature Learning,就可以顾名思义了,Unsupervised的意思就是不要⼈参与特征的选取过程。
那它是怎么学习的呢?怎么知道哪些特征好哪些不好呢?我们说机器学习是⼀门专门研究计算机怎样radeon 9200
模拟或实现⼈类的学习⾏为的学科。好,那我们⼈的视觉系统是怎么⼯作的呢?为什么在茫茫⼈海,芸芸众⽣,滚滚红尘中我们都可以到另⼀个她(因为,你存在我深深的脑海⾥,我的梦⾥我的⼼⾥我的歌声⾥……)。⼈脑那么NB,我们能不能参考⼈脑,模拟⼈脑呢?(好像和⼈脑扯上点关系的特征啊,算法啊,都不错,但不知道是不是⼈为强加的,为了使⾃⼰的作品变得神圣和⾼雅。)
近⼏⼗年以来,认知神经科学、⽣物学等等学科的发展,让我们对⾃⼰这个神秘的⽽⼜神奇的⼤脑不再那么的陌⽣。也给⼈⼯智能的发展推波助澜。
三、⼈脑视觉机理
1981 年的诺贝尔医学奖,颁发给了 David Hubel(出⽣于加拿⼤的美国神经⽣物学家)和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”:可视⽪层是分级的:
我们看看他们做了什么。1958 年,DavidHubel 和Torsten Wiesel 在 JohnHopkins University,研究瞳孔区域与⼤脑⽪层神经元的对应关系。他们在猫的后脑头⾻上,开了⼀个3 毫⽶的⼩洞,向洞⾥插⼊电极,测量神经元的活跃程度。
然后,他们在⼩猫的眼前,展现各种形状、各种亮度的物体。并且,在展现每⼀件物体时,还改变物体放置的位置和⾓度。他们期望通过这个办法,让⼩猫瞳孔感受不同类型、不同强弱的刺激。
之所以做这个试验,⽬的是去证明⼀个猜测。位于后脑⽪层的不同视觉神经元,与瞳孔所受刺激之间,存在某种对应关系。⼀旦瞳孔受到某⼀种刺激,后脑⽪层的某⼀部分神经元就会活跃。经历了很多天反复的枯燥的试验,同时牺牲了若⼲只可怜的⼩猫,David Hubel 和Torsten Wiesel 发现了⼀种被称为“⽅向选择性细胞(Orientation Selective Cell)”的神经元细胞。当瞳孔发现了眼前的物体的边缘,⽽且这个边缘指向某个⽅向时,这种神经元细胞就会活跃。
这个发现激发了⼈们对于神经系统的进⼀步思考。神经-中枢-⼤脑的⼯作过程,或许是⼀个不断迭代、不断抽象的过程。
这⾥的关键词有两个,⼀个是抽象,⼀个是迭代。从原始信号,做低级抽象,逐渐向⾼级抽象迭代。⼈类的逻辑思维,经常使⽤⾼度抽象的概念。
例如,从原始信号摄⼊开始(瞳孔摄⼊像素 Pixels),接着做初步处理(⼤脑⽪层某些细胞发现边缘和⽅向),然后抽象(⼤脑判定,眼前的物体的形状,是圆形的),然后进⼀步抽象(⼤脑进⼀步判定该物体是只⽓球)。
这个⽣理学的发现,促成了计算机⼈⼯智能,在四⼗年后的突破性发展。
数显时间继电器总的来说,⼈的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者⽬
标的部分等,再到更⾼层,整个⽬标、⽬标的⾏为等。也就是说⾼层的特征是低层特征的组合,从低层到⾼层的特征表⽰越来越抽象,越来越能表现语义或者意图。⽽抽象层⾯越⾼,存在的可能猜测就越少,就越利于分类。例如,单词集合和句⼦的对应是多对⼀的,句⼦和语义的对应⼜是多对⼀的,语义和意图的对应还是多对⼀的,这是个层级体系。
敏感的⼈注意到关键词了:分层。⽽Deep learning的deep是不是就表⽰我存在多少层,也就是多深呢?没错。那Deep learning是如何借鉴这个过程的呢?毕竟是归于计算机来处理,⾯对的⼀个问题就是怎么对这个过程建模?
因为我们要学习的是特征的表达,那么关于特征,或者说关于这个层级特征,我们需要了解地更深⼊点。所以在说Deep Learning之前,我们有必要再啰嗦下特征。
四、关于特征
家具专卖店设计特征是机器学习系统的原材料,对最终模型的影响是⽏庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度。那对于特征,我们需要考虑什么呢?
4.1、特征表⽰的粒度
学习算法在⼀个什么粒度上的特征表⽰,才有能发挥作⽤?就⼀个图⽚来说,像素级的特征根本没有
价值。例如下⾯的摩托车,从像素级别,根本得不到任何信息,其⽆法进⾏摩托车和⾮摩托车的区分。⽽如果特征是⼀个具有结构性(或者说有含义)的时候,⽐如是否具有车把⼿(handle),是否具有车轮(wheel),就很容易把摩托车和⾮摩托车区分,学习算法才能发挥作⽤。
4.2、初级(浅层)特征表⽰
既然像素级的特征表⽰⽅法没有作⽤,那怎样的表⽰才有⽤呢?
1995 年前后,Bruno Olshausen和 David Field 两位学者任职 Cornell University,他们试图同时⽤⽣理学和计算机的⼿段,双管齐下,研究视觉问题。
他们收集了很多⿊⽩风景照⽚,从这些照⽚中,提取出400个⼩碎⽚,每个照⽚碎⽚的尺⼨均为 16x16 像素,不妨把这400个碎⽚标记为 S[i], i = 0,.. 399。接下来,再从这些⿊⽩风景照⽚中,随机提取另⼀个碎⽚,尺⼨也是 16x16 像素,不妨把这个碎⽚标记为 T。
他们提出的问题是,如何从这400个碎⽚中,选取⼀组碎⽚,S[k], 通过叠加的办法,合成出⼀个新的碎⽚,⽽这个新的碎⽚,应当与随机选择的⽬标碎⽚ T,尽可能相似,同时,S[k] 的数量尽可能少。⽤数学的语⾔来描述,就是:
Sum_k (a[k] * S[k]) --> T,    其中 a[k] 是在叠加碎⽚ S[k] 时的权重系数。
为解决这个问题,Bruno Olshausen和 David Field 发明了⼀个算法,稀疏编码(Sparse Coding)。
图灵机
稀疏编码是⼀个重复迭代的过程,每次迭代分两步:
1)选择⼀组 S[k],然后调整 a[k],使得Sum_k (a[k] * S[k]) 最接近 T。
2)固定住 a[k],在 400 个碎⽚中,选择其它更合适的碎⽚S’[k],替代原先的 S[k],使得Sum_k (a[k] * S’[k]) 最接近 T。
经过⼏次迭代后,最佳的 S[k] 组合,被遴选出来了。令⼈惊奇的是,被选中的 S[k],基本上都是照⽚上不同物体的边缘线,这些线段形状相似,区别在于⽅向。
Bruno Olshausen和 David Field 的算法结果,与 David Hubel 和Torsten Wiesel 的⽣理发现,不谋⽽合!
也就是说,复杂图形,往往由⼀些基本结构组成。⽐如下图:⼀个图可以通过⽤64种正交的edges(可以理解成正交的基本结构)来线性表⽰。⽐如样例的x可以⽤1-64个edges中的三个按照0.8,0.3,0.5的权重调和⽽成。⽽其他基本edge没有贡献,因此均为0 。
另外,⼤⽜们还发现,不仅图像存在这个规律,声⾳也存在。他们从未标注的声⾳中发现了20种基本的声⾳结构,其余的声⾳可以由这20种基本结构合成。
4.3、结构性特征表⽰
⼩块的图形可以由基本edge构成,更结构化,更复杂的,具有概念性的图形如何表⽰呢?这就需要更⾼层次的特征表⽰,⽐如V2,V4。因此V1看像素级是像素级。V2看V1是像素级,这个是层次递进的,⾼层表达由底层表达的组合⽽成。专业点说就是基basis。V1取提出的basis是边缘,然后V2层是V1层这些basis的组合,这时候V2区得到的⼜是⾼⼀层的basis。即上⼀层的basis组合的结果,上上层⼜是上⼀层的组合basis……(所以有⼤⽜说Deep learning就是“搞基”,因为难听,所以美其名⽈Deep learning或者Unsupervised Feature Learning)
直观上说,就是到make sense的⼩patch再将其进⾏combine,就得到了上⼀层的feature,递归地向上learning feature。
在不同object上做training是,所得的edge basis 是⾮常相似的,但object parts和models 就会completely different了(那咱们分辨car或者face是不是容易多了):
从⽂本来说,⼀个doc表⽰什么意思?我们描述⼀件事情,⽤什么来表⽰⽐较合适?⽤⼀个⼀个字嘛,我看不是,字就是像素级别了,起码应该是term,换句话说每个doc都由term构成,但这样表⽰概念的能⼒就够了嘛,可能也不够,需要再上⼀步,达到topic级,有了topic,再到doc就合理。但每个层次的数量差距很⼤,⽐如doc表⽰的概念->topic(千-万量级)->term(10万量级)->word(百万量级)。
⼀个⼈在看⼀个doc的时候,眼睛看到的是word,由这些word在⼤脑⾥⾃动切词形成term,在按照概念组织的⽅式,先验的学习,得到topic,然后再进⾏⾼层次的learning。
4.4、需要有多少个特征?
我们知道需要层次的特征构建,由浅⼊深,但每⼀层该有多少个特征呢?
任何⼀种⽅法,特征越多,给出的参考信息就越多,准确性会得到提升。但特征多意味着计算复杂,探索的空间⼤,可以⽤来训练的数据在每个特征上就会稀疏,都会带来各种问题,并不⼀定特征越多越好。
好了,到了这⼀步,终于可以聊到Deep learning了。上⾯我们聊到为什么会有Deep learning(让机器⾃动学习良好的特征,⽽免去⼈⼯选取过程。还有参考⼈的分层视觉处理系统),我们得到⼀个结论就是Deep learning需要多层来获得更抽象的特征表达。那么多少层才合适呢?⽤什么来建模呢?怎么进⾏⾮监督训练呢?

本文发布于:2024-09-22 15:42:28,感谢您对本站的认可!

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

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

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