Deep Learning是全部深度学习算法的总称,CNN是深度学习算法在图像处理领域的一个应用。
Deep Learning强大的地方就是可以利用网络中间某一层的输出当做是数据的另一种表达,从而可以将其认为是经过网络学习到的特征。基于该特征,可以进行进一步的相似度比较等。
Deep Learning算法能够有效的关键其实是大规模的数据,这一点原因在于每个DL都有众多的参数,少量数据无法将参数训练充分。
一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。
CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。
卷积神经网络的优缺点
优点:
a. 共享卷积核,对高维数据处理无压力
b. 无需手动选取特征,训练好权重,即得特征
c. 分类效果好
缺点:
a. 需要调参,需要大样本量,训练最好要用GPU
b. 物理含义不明确
1. LeNet,这是最早用于数字识别的CNN
2. AlexNet, 2012 ILSVRC比赛远超第2名的CNN,比LeNet更深,用多层小卷积层叠加替换单大卷积层
3. ZF Net, 2013 ILSVRC比赛冠军
4. GoogLeNet, 2014 ILSVRC比赛冠军
5. VGGNet, 2014 ILSVRC比赛中的模型,图像识别略差于GoogLeNet,但是在很多图像转化学习问题(比如object detection)上效果奇好。
1. Caffe:源于Berkeley的主流CV工具包,支持C++,Python,matlab,Model Zoo中有大量预训练好的模型供使用。
prototxt是用命令行做训练时要用的,定义了cnn的层级结构。
Torch:Facebook用的卷积神经网络工具包,通过时域卷积的本地接口,使用非常直观,torch定义新网络层比较简单,可以做图像或者RNN。
TensorFlow:Google的深度学习框架,可视化很方便,数据和模型并行化好,速度快。开源后资源会更丰富。
CNN的应用:图像识别与检索、人脸识别、性别/年龄/情绪识别、物体检测、场景判定与危险监控等
http://blog.csdn.net/a819825294/article/details/53425108
https://www.zhihu.com/question/41233373
http://blog.csdn.net/a819825294/article/details/53425108
http://blog.csdn.net/zouxy09/article/details/8781543
http://blog.csdn.net/fengbingchun/article/details/50529500
http://blog.csdn.net/nicajonh/article/details/53142449?locationNum=2&fps=1