深度学习浅层理解(二)

参见链接文献如下:

http://blog.csdn.net/zouxy09/article/details/8775518

Deep Learning和  neural network异同

二者的相同在于deep learning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个logistic regression模型;这种分层结构,是比较接近人类大脑的结构的。

而为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。而deep learning整体上是一个layer-wise的训练机制。这样做的原因是因为,如果采用back propagation的机制,对于一个deep network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度弥散)。

BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。

BP算法存在的问题:

(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;

(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);

(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;

deep learning训练过程具体如下:

1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):

采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程):

具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;

2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):

基于第一步得到的各层参数进一步fine-tune(微调)整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deep learning效果好很大程度上归功于第一步的feature learning过程。

时间: 2024-10-05 11:27:48

深度学习浅层理解(二)的相关文章

深度学习浅层理解(一)

来源和参考,参见以下链接等相关网站: http://blog.csdn.net/zouxy09/article/details/8775360 http://blog.csdn.net/zouxy09/article/details/8775488 http://blog.csdn.net/zouxy09/article/details/8775518 1958 年,DavidHubel 和Torsten Wiesel 在 JohnHopkins University,研究瞳孔区域与大脑皮层神经

深度学习浅层理解(四)-- 稀疏编码

借鉴前人的文章链接 http://blog.csdn.net/zouxy09/article/details/8777094 http://www.gene-seq.com/bbs/thread-2853-1-1.html http://ibillxia.github.io/blog/2012/09/26/convex-optimization-overview/ UFLDL教程 http://ufldl.stanford.edu/wiki/index.php/%E7%A8%80%E7%96%8

吴恩达 DeepLearning.ai课程笔记(1-3)神经网络和深度学习 --- 浅层神经网络

以下为在Coursera上吴恩达老师的DeepLearning.ai课程项目中,第一部分<神经网络和深度学习>第二周课程部分关键点的笔记.笔记并不包含全部小视频课程的记录,如需学习笔记中舍弃的内容请至 Coursera 或者 网易云课堂.同时在阅读以下笔记之前,强烈建议先学习吴恩达老师的视频课程. 1. 二分类问题 对于二分类问题,大牛给出了一个小的Notation. 样本:  ,训练样本包含  个: 其中  ,表示样本 包含 个特征:  ,目标值属于0.1分类: 训练数据:  输入神经网络时

深度学习入门必须理解这25个概念

深度学习入门必须理解这25个概念 2017年05月22日 21:11:51 Star先生 阅读数:30013 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/pangjiuzala/article/details/72630166 神经网络基础 1)神经元(Neuron)--就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构.想象一下,当我们得到新信息时我们该怎么做.当我们获取信息时,我们一般会处理它,然后生成一个输出.类似地,在

struct2.1笔记01:MVC框架思想浅层理解

1. Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts 1框架更加成熟.稳定,性能也有了很好的保证.因此,到目前为止,Struts 1依然是世界上使用最广泛的MVC框架. 目前,基于Web的MVC框架非常多,发展也很快,每隔一段时间就有一个新的MVC框架发布,例如像JSF.Tapestry和Spring MVC等.除了这些有名的MVC框架外,还有一

Deep Learning(深度学习)之(二)Deep Learning的基本思想

五.Deep Learning的基本思想 假设我们有一个系统S,它有n层(S1,-Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>-..=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失(呵呵,大牛说,这是不可能的.信息论中有个"信息逐层丢失"的说法(信息处理不等式),设处理a信息得到b,再对b处理得到c,那么可以证明:a和c的互信息不会超过a和b的互信息.这表明信息处理不会增加信息,大部分处理

【转】深度学习基础概念理解

原文链接 神经网络基础 1)神经元(Neuron)--就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构.想象一下,当我们得到新信息时我们该怎么做.当我们获取信息时,我们一般会处理它,然后生成一个输出.类似地,在神经网络的情况下,神经元接收输入,处理它并产生输出,而这个输出被发送到其他神经元用于进一步处理,或者作为最终输出进行输出.  2)权重(Weights)--当输入进入神经元时,它会乘以一个权重.例如,如果一个神经元有两个输入,则每个输入将具有分配给它的一个关联权重.我们随

《神经网络和深度学习》系列文章二:感知机

出处: Michael Nielsen的<Neural Network and Deep Leraning>,点击末尾“阅读原文”即可查看英文原文. 本节译者:哈工大SCIR硕士生 徐梓翔 (https://github.com/endyul) 声明:我们将在每周一,周四,周日定期连载该书的中文翻译,如需转载请联系[email protected],未经授权不得转载. “本文转载自[哈工大SCIR]微信公众号,转载已征得同意.” 使用神经网络识别手写数字 感知机 sigmoid神经元 神经网络

&lt;转&gt;深度学习浅谈

深度学习--人工神经网络再掀研究热潮 胡晓林 转自:http://caai.cn/contents/118/1934.html 人工神经网络起源于上世纪40年代,到今天已经70年历史了.就像人的一生,经历了起起落落,有过辉煌,有过黯淡,有过嘈杂,有过冷清.总体说来,过去的20年中人工神经网络的研究不温不火,直到最近三五年,随着深度学习概念的提出,人工神经网络才又重新焕发生机,甚至再度掀起研究热潮.本文简述一下人工神经网络的"前世今生",并简单展望一下它的未来. 第一个神经元模型是194