zoukankan      html  css  js  c++  java
  • 深度网络与深度学习

    神经网络在二十世纪五十年代提出,在二十世纪七八十年代几乎一统天下,很多人工智能的研究人员对神经网络寄予了厚望,以为机器的智能化时代随着神经网络的发展而来临。所有人都对这个结构复杂,与人类的神经结构有一定相似性的东西充满了期待,可惜这么多年过去,神经网络似乎陷入了某种困境,而且当年的辉煌也开始黯淡了下来,在分类方面,被支持向量机打得节节败退,而在降维方面,似乎也很难敌过一些统计方法。在21世纪的前十年,计算机视觉飞速发展的这些年,神经网络几乎被人遗忘了,统计特征与支持向量机,贝叶斯估计的联手几乎横扫整个CV界。

    但是可能正应了一句话,三十年河东,三十年河西,经过十年的发展,CV界也开始陷入了某种困境,该挖的坑都挖地差不多了,有些坑,还有人在前赴后继地填土,有些坑看起来是很难填得完了。统计特征这块,比如SIFT, HOG, LBP, LPQ 什么的都想得差不多了,分类器这块,贝叶斯估计,SVM,GMM 什么的很难有新的突破,大家开始搜寻很多年前挖的坑,看有没有什么可以再挖一挖的,然后又转到了神经网络。然后,机器学习界开始流行一个很fancy的概念: deep learning。

    说到 deep learning, 不得不介绍几个大牛。

    首先是 Geoffrey E.Hinton:  

    (home page: http://www.cs.toronto.edu/~hinton/)

    Hinton潜心研究神经网络很多年,几乎可以说是神经网络领域的泰斗级人物了,Hinton在研究Restricted Boltzmann Machines的基础上提出了那篇很有影响力的文章:

    G. E.Hinton,Osindero,S.Teh,Y.W, "A fast learning algorithm for deep belief nets,"Neural computation,vol. 18, pp. 1527-1554, 2006.

    这个网络会在以后的文章里详细介绍。

    另外一个是 Bengio 

    (home page: http://www.iro.umontreal.ca/~bengioy/yoshua_en/index.html)

    还有 Yann LeCun, CNN 网络的继承和发扬者,虽然CNN 网络不是Lecun 最早提出来的,但是却是他发扬光大的,

    Home page http://yann.lecun.com/

    还有斯坦福大学的 Andrew Ng:  http://cs.stanford.edu/people/ang/

    deep learning 的理论基础很多年前就已经提出来了,神经网络本身就是对人类视觉感知的模拟,至于是shallow好还是deep好,却是引来不少争论,虽然已经有无数的实验证明,只含有一个隐含层的shallow结构,足以搞定所有复杂的非线性系统,当初大部分人支持shallow结构,除了这个原因之外,还有一个原因是deep 结构的训练太难了,传统的梯度下降法,在deep 结构里,随着隐含层的增加,梯度很容易陷入一个局部最小值里面。

    但是,另外一方面,deep结构似乎更加符合人类的感知过程,人类视觉的感知过程,本身就是有层次的,所以直观上来看,不是应该deep结构更加有希望吗。而且随着Hinton和Bengio等人提出的unsupervised training和 supervised fine tuning 结合的训练方法,大家开始对deep结构重新燃起了希望。

    现在有几大主流的deep结构,

    一个是以Restricted Boltzmann Machines 为基础的 deep belief network。

    一个是以auto encoder 为基础的 Stacked Auto-Encoders

    还有一个是Convolution Neural Networks, 简称CNN,

    平心而论,最像人类视觉感知过程的应该是CNN了,这个网络本来就是基于人类视觉感知的研究而建立起来的。

    CNN 在 scene classification 和 image net classification 上都有很好的表现,非常令人期待。不过讽刺的是CNN 严格意义上来说并不是真正的deep 结构,而且CNN早在1998 年就已经出现了,最原始的模型则出现得还要早。


    下面说说自己对deep learning的理解。

    1:这个领域对数学的要求非常高,这大概是入门最大的门槛了,特别是RBM, DBN这个模型,推导过程没有很好的数学功底很难理解,不过CNN 倒是比较直观,CNN网络结构很好理解,CNN的难点在于它的connection,因为它不是full connection,所以每种不同的connection,weights 的计算都会有所不同,这实在是令人很崩溃。

    2:我对deep learning的一些 points 表示怀疑,因为搞研究的总是需要找一些 points 来支持自己的研究,看起来比较make sence 一些。 我想 deep learning 应该也是一个维数变换的魔术吧,它的意义在于为连续的维数变换提供了一个可行的途径。如果因此认为deep learning 在降维的同时,可以分层地提取不同级别的semantic feature, 这似乎是个过于乐观的想法。

    3:我一直对神经网络这个东西表示好奇,如果以武学来形容的话,统计特征,SVM 这一派大概就是少林功夫了,一招一式都有板有眼,每一步的推导都令人心悦诚服,你可以预测会达到一种什么效果,而神经网络感觉就像是逍遥派的招式,让人摸不着头脑,你不知道最终会发生什么,感觉好像很难把握一样。所以我一直都觉得用神经网络来做特征学习是很不靠谱的一件事情。

    4:神经网络的魅力或许在于处理大数据和多分类问题,虽然SVM 现在也可以处理这个问题,但是随着类别的增加,神经网络处理的效率就能体现出来了。

  • 相关阅读:
    开通博客
    实验一、命令解释程序的编写实验
    C#题目
    将Textbox、listview控件里的数据导入Excel
    unpV1的源码的使用方法
    git的基本使用方法(备忘)
    Shell中的exec和source解析(转载)
    无限式查找2013年2月28日
    解决"wxPython在Mac下的64位支持"的问题
    寻找固定的和2013年2月26日
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412719.html
Copyright © 2011-2022 走看看