机器学习之卷积神经网络(CNN)

来源:互联网 发布:43类常见网络诈骗手段 编辑:程序博客网 时间:2024/05/05 11:56

积卷神经网络(Convolutional Neural Network,CNN):神经网络中的一种拓展

朴素的CNN和朴素的NN没有任何区别。


CNN主要思想:

       局部连接

       权值共享

 

CNN应用在特征提取领域

 

前向传播:

 

实现的层面上和NN是一样的,不同之处在于:

       接收的输入形式不同

       层与层之间的连接方式不同

 

NN将输出的图像拉直成一个列向量,合并后输入。

CNN将原始图像数据作为输入

 

前向传播算法图:


 

前向传播也是一个卷积的过程

 

 

NN和CNN的异同:

       NN和CNN的主要结构是层;NN是一维的,CNN是高维的

       NN处理的一般是线性的数据;CNN是直观上更合适处理结构性的数据

       NN层结构间会有权值矩阵作为连接的桥梁;CNN没有层结构间的权值矩阵,只有层结构自身的局部视野。

       NN层结构称为普通层;CNN层结构称为卷积层。

 

 

CNN存在层结构自身的局部视野,该局部视野会在前向传播算法中与层结构进行卷积运算得到结果,并将结果传给下一层。

 

卷积的常用解决方案:

       1、将卷积不在变换成比较大规模的矩阵相乘

       2、利用快速傅里叶变换(FFT)求解

 

Stride和Padding:

       Stride(步长):描述局部视野在频道上的浏览速度

       Padding(填充):保持输入和输出的频道形状一致,一般有填充0或者不填充

 

卷积网络可以很好地适应图片的平移不变性。共享权重和偏置被称为卷积核或者滤波器

根据输入的滤波器,进行卷积:



图像分类中我们会卷积多次,也称为特征映射,下图卷积了3次,识别了3种特征:

 

共享权重和偏置的一个很大的优点是,大大减少了网络的参数数量。

一次卷积需要5x5=25个共享权重,加上一个共享偏置共26+1=26个参数。如果我们卷积了20次,那么共有20x26=520个参数。

 

 

 

全连接层(FC):

全连接层(FC),可能会出现在CNN中,一个比较特殊的结构。

 

FC和普通层相似,FC是连接卷积层和普通层的普通层。

 

FC将从卷积层得到的高维数据用列向量的方式铺平输出,利用激活函数进行一些非线性变换,将结果输出给FC后面的各个普通层结构的系统。

 

卷积层:自输入开始至FC终止的卷积块

普通层:自FC开始,至输出终止的NN块

 

卷积块 =特征提取器

NN块= 决策分类器

 

CNN中有卷积块和NN块的原因:

       卷积块中卷积的基本单元是局部视野,而NN块可以将卷积块得到的局部视野做出相应的决策。

 

 

 

池化(Pooling):

池化层一般在卷积层之后使用,主要是简化从卷积层输出的信息。

池化层的每个单元概括了前一层的一个小区域

 

池化的本质对局部信息的总结

池化能减少特征的维度减少过拟合的出现

 

 

常见池化:

       极大池化(Max Pooling):输出接收到的所有输入中的最大值

       平均池化(Average Pooling):输出接收到的所以输入的均值

 

池化的过程和卷积类似,局部视野对输入信息的转换

 

池化的Stride通常会比卷积的Stride要大,因为:

       池化是对局部信息的总结,所以希望池化能够得到信息的某种压缩处理。

 

 

 

 参考:

http://blog.csdn.net/login_sonata/article/details/77488383