无监督逐层预训练目前是否还广泛应用于CNN的训练

无监督逐层预训练目前是否还广泛应用于CNN的训练?

之前看的文章,说DL与NN之间最大的不同是 求参的过程。
(1)假设多层隐藏层的NN使用梯度下降法训练参数,以我的理解是,参数初始化是随机的,但是基本接近于0.然后迭代5000次,求出最优参数。但是由于反向传播梯度扩散的现象,加上训练参数十分庞大,求解往往是局部最小值。所以NN才火不起来。
(2)而DL,采用不同的训练方式,逐层训练,每次训练相当于三层的NN,每层训练出的输出作为下层训练的输入。当每次都训练好之后,再“整体调优”,“整体调优”的初始化参数即为前面逐层训练的参数,这样效果当然要比NN好。
以上是我的理解,不知道对不对。假设我的理解是没多大问题的。那我的问题就是:
(1)为什么我看其他的深度学习的方法,至少是CNN,好像没有用到上面所提的训练参数的方式。反而通过Local receptive fields和sharing weights来减少训练参数的个数;通过pooling、dropout tech、L2 regularization、使用ReLU等方式来加快训练速度和避免过拟合。我的理解是,无论用了什么改进。求参过程不可避免需要使用梯度下降(不考虑牛顿),BP求参。那么梯度扩散的现象是不是依然存在?和NN相比,DL仅仅通过训练参数少降低梯度扩散的影响?DL中的梯度扩散和NN中的梯度扩散本质上有无区别?
(2)或者说我没看懂CNN?CNN本身是用到了逐层训练的方式?那能不能给推荐一些资料介绍CNN训练过程的?
(3)假设DL逐层训练,DL网络有3个隐藏层,那么同一个问题NN可能训练需要5000次迭代,是不是DL需要5000*(3+1)次迭代?
感觉越说越乱了...求大神给梳理一下,或者给一些参考资料网址等等,拜谢~

xinmiao

赞同来自: ZhangXucjwdeqMrWang_jeightgg佛仙魔 更多 »

    谢邀。
    先说是不是,再说为什么。
    首先给出一个答案供参考:当前(公元2014.01~公元2015.12)被广泛使用的CNN模型,绝大多数都不再使用“逐层预训练”方式进行初始化。注意,是“不再”。
    为什么这样说呢?
    在回答之前,首先必须要懂的一个道理: 许多问题,以及问题解决办法的提出都是有历史背景的,一个好的办法并不永远都是好的,而是因为在当时的历史背景下解决了当时的问题。“逐层预训练”就是这个的集中体现,同样的道理也可参考LSTM。
    逐层预训练面对的问题是,在当时的历史条件下(ReLU还未提出、稀疏火的一塌糊涂),如何解决训练深度网络的问题。
    如果明白了这个道理,你就明白了为什么后来不再用逐层预训练了:新一代激活函数、dropout等等。而现在,由于一些指导性理论的提出,把网络轻松搞到几十层甚至上百层已不是梦。目前你看到的一些文章中的“pre-training”,已经和那个时期的不是一个意思了,大多数时候是对应于“fine-turnin”来说的(这是后话了)。
    题主的问题我猜应该是先看了一些早期深度学习的介绍(大概在08年左右?),但也许你了解的仍不够早。所谓博古才能通今,就是这个道理。推荐你看一篇综述,关于深度学习的年鉴:
    Schmidhuber J. Deep Learning in Neural Networks: An Overview[J]. Neural Networks, 2014, 61:85–117.
   
    另外请参考这个问题:
   “无监督学习是否被监督学习取代了?” -  http://caffecn.cn/?/question/4

    以上~
 

shine

赞同来自: 佛仙魔

可能和非监督的有些混淆,深度学习火之前,学习深层的神经网络是很困难的,所以Hinton当时提出逐层训练的方法,例如DBN还有Deep Auto-Encoder。这些用的比较少了,相比CNN。CNN是采用BP方式求参数,用了你了解的那些技术来减少参数还有避免过拟合,具体求解BP过程可以参考《Notes on Convolutional Neural Networks 》,或是部分翻译博客 http://blog.csdn.net/lansatiankongxxc/article/details/49666073
 
 
多层神经网络是深度学习中的一个模型,但深度学习除了XNN,还有RBM DBN AutoEncoder Sparse Coding等模型,而这些模型默认是非监督的,XNN模型目前默认为是监督。你考虑的DL训练方式是那些无监督模型的训练方式。
https://www.zhihu.com/question/26017374
现在有些开窍了,可能是我接触这个领域的理论才一两个星期,看的理论不系统。
 
从回复中大概知道了:
(1)、目前主流的学习仍然是监督学习,最多是半监督学习。
(2)、使用ReLU、dropout等技术可以实现深层网络学习,逐层训练方式目前的大背景下又被淘汰了。
(3)、大概意思是深度学习是神经网络的第二春,催化剂是以上各种技术(实现训练参数的目的),而本质上,两者不能严格区分、各成一派。CNN也是采用特定的技术降参,训练参数容易才成为目前比较火的技术。

猜你喜欢

转载自blog.csdn.net/lien0906/article/details/79218988