标签:
在学习深度学习的过程中,主要参考了四份资料:
对比过这几份资料,突然间产生一个困惑:台大和Andrew的教程中用了很大的篇幅介绍了无监督的自编码神经网络,但在Li feifei的教程和caffe的实现中几乎没有涉及。当时一直搞不清这种现象的原因,直到翻阅了深度学习的发展史之后,才稍微有了些眉目。
深度学习的发展大致分为这么几个时期:
在Yann LeCun、Yoshua Bengio和Geoffrey Hinton三巨头nature深度学习综述deep learning文章中提到,这段期间神经网络模型被主流的计算机视觉和学术界所抛弃。
这期间,学者们试图用有监督学习的方式训练深度神经网络,然而方法不是十分奏效,陷入了困境,在Andrew的教程中可以找到大概这几点原因:
因为一直没找到有效解决这些问题的方法,这期间,深度神经网络的发展一直不温不火。或者说在2001年Hochreiter的Gradient flow in recurrent nets: the difficulty of learning long-term dependencies(好像是这篇)提出了神经网络存在的几个问题后,在接下来的几年内神经网络的发展陷入了低谷。而那几年流行的机器学习算法是SVM和集成模型(随机森林、adaboost等),如下图所示。
06年Hilton在nature上发表了一篇文章Reducing the dimensionality of data with neural networks,针对上面提到的三个深度学习问题,提出了栈式自编码器+BP微调的解决方案。在一定程度上解决了上面的三个问题:
因为上面的原因,在经历01年神经网络的低谷后,深度学习开启的崭新的浪潮,走上了发展的快车道,从上图的红线可以明显的看出。
在12年的ILSVRC竞赛中,Hilton团队的Alexnet模型Imagenet classification with deep convolutional neural networks将1000类分类的top-5误差率降低到了15.3%,碾压了第二名使用SVM算法的26.2%,开启了深度学习的革命,从此之后,深度学习走上了指数式的发展道路。在15年CVPR的文章中,我关注的两个方向场景语义标注和显著物体检测,有相当大比例的文章中涉及CNN或者deep的字眼,估计明年CVPR文章中深度学习的比例会更高。工业界的火爆就不用多提了,从Yann LeCun、Yoshua Bengio和Geoffrey Hinton三巨头到颜水成、li feifei这样的视觉方向大牛都被挖到互联网公司就可见一斑。
回到Hilton团队的Alexnet模型上,仅仅使用了有监督的训练,貌似没涉及无监督的预训练。不是在之前说有监督的深度学习训练存在很多问题吗,大概是因为这几条原因,导致了有监督训练的可行:
从上面介绍可以看出,Andrew NG的教程是06年到12年之间的产物,当时无监督训练是主流,Li feifei的CNN教程和caffe官网的教程是产生于12年之后,这时数据库足够大(上千万级别),模型足够先进(ReLU激活函数,dropout等等),同时计算速度足够快(GPU加速),使得无监督预训练(自编码神经网络)在很多应用场景中失去了存在的价值,有监督训练已足够完成任务。
一句话总结,06年的无监督预训练开启了深度学习的纪元,在之后深度学习快速发展的过程中,大数据的获得、计算机硬件的发展以及深度模型的升级使得有监督训练重新走上舞台,无监督预训练也算是完成了历史使命。
那预训练还有用吗?答案是肯定的,比如我们有一个分类任务,数据库很小,这时还是需要通过预训练来避免深度模型的过拟合问题的,只不过预训练是通过在一个大的数据库上(比如imagenet),通过有监督的训练来完成的。这种有监督预训练加小的数据库上微调的模式称为Transfer learning,在Li feifei的CNN教程和caffe官网的教程中都有详细的介绍。
除此之外,Andrew NG的教程也有其它几点常用于12年之前但现在很少用的细节,比如这个教程中介绍的激活函数是sigmoid,现在很少见了,几乎被ReLU激活函数取代,优化算法用的是L-BFGS,现在的优化算法主流是SGD+momentum。这些教程之间的不同点在当时学习之初是很困惑的,直到明白了深度学习的发展历程,才渐渐了解这些不同的来源。
标签:
原文地址:http://www.cnblogs.com/soulmate1023/p/5556806.html