博客
关于我
2.卷积神经网络CNN结构及其模型
阅读量:165 次
发布时间:2019-02-28

本文共 2179 字,大约阅读时间需要 7 分钟。

一、卷积神经网络分为以下层次:

一般的层次为:输入层->卷积层->ReLU激励层->池化层->全连接层

各层参数的个数:

1. 数据输入层---input layer

常用数据处理方式:

    

图像里只用去均值---中心化--加减某值--目的就是把样本的中心拉回到坐标系原点上

1)227x227x3---去均值----像素相加/像素个数得到均值矩阵,每次减去矩阵-------Alexnet的方法!

2)VGG方法!----三个颜色通道均值,分别减去三个均值!

2.卷积计算层--conv layer

每个神经元---->一个filter滤波器-----窗口滑动,即filter对局部数据计算;

深度/depth----图中圆圈的个数,即神经元个数,每个圆圈代表一个滑动窗口,窗口内每个像素都有一个权重w;

步长/stride-------窗口每次滑动的像素个数;

填充值/zero-padding-----为了整除,边缘补0;

计算方法:

y = wx + b;

w即图中3x3的矩阵;b是指偏置项;

三通道分别求卷积,然后求和,得到输出的图像,所以有几个卷积核就有几个输出。

在卷积层中每个神经元连接数据窗的权重是固定的,每个神经元只关注一个特性。神经元就是图像处理中的滤波器,比如边缘检测专用的Sobel滤波器,即卷积层的每个滤波器都会有自己所关注一个图像特征,比如垂直边缘,水平边缘,颜色,纹理等等,这些所有神经元加起来就好比就是整张图像的特征提取器集合。

3.激励层---Relu layer

actvation  function---激活函数去过滤!---f()

用的多的是Relu----如艾路---(The Rectified Linear Unit/修正线性单元),它的特点是收敛快,求梯度简单,但较脆弱。

Relu---0~正无穷---输入小于0的坏的部分删除,只取正的部分;

缺点---全部数据都在小于0部分---概率小!-----leak Relu来修正!小于0部分斜率很小!放一部分进去!

4. 池化层---Pooling layer

夹在连续的卷积层之间---作用是下采样!-----压缩数据和参数的量,减小过拟合!

方法是----求均值或者求最大值!----图像一般用Max pooling!

关于池化层的理解:

1. 特征不变性,也就是我们在图像处理中经常提到的特征的尺度不变性,池化操作就是图像的resize,平时一张狗的图像被缩小了一倍我们还能认出这是一张狗的照片,这说明这张图像中仍保留着狗最重要的特征,我们一看就能判断图像中画的是一只狗,图像压缩时去掉的信息只是一些无关紧要的信息,而留下的信息则是具有尺度不变性的特征,是最能表达图像的特征。

2. 特征降维,我们知道一幅图像含有的信息是很大的,特征也很多,但是有些信息对于我们做图像任务时没有太多用途或者有重复,我们可以把这类冗余信息去除,把最重要的特征抽取出来,这也是池化操作的一大作用。

3. 在一定程度上防止过拟合,更方便优化。

5.全连接层---FC layer

两层之间所有神经元权重连接;---一般在CNN的尾部!

M是以上结构的个数 ;N是卷积层个数;

卷积层1后留下学习后的东西---轮廓,颜色等!

卷积层2----?。。。。。。解释不清楚!

二、CNN的训练算法

1)Loss函数

2)找到最小化损失函数的W和b-------SGD算法/随机梯度下降法(求W和b的偏导数-----BP算法--求导的链式法则求dW和db)

除了SGD还有---Adam........

三、优缺点

如何理解卷积神经网络中的权值共享?

就是整张图片在使用同一个卷积核内的参数,比如一个3*3*1的卷积核,这个卷积核内9个的参数被整张图共享,而不会因为图像内位置的不同而改变卷积核内的权系数。

无论图像的尺寸是多大,都可以选择固定尺寸的卷积核,LeNet中最大的卷积核只有5*5*1,而在AlexNet中最大的卷积核也不过是11*11*3。而卷积操作保证了每一个像素都有一个权系数,只是这些系数是被整个图片共享的,着大大减少了卷积核中的参数量。此外卷积操作利用了图片空间上的局部相关性,这也就是CNN与传统神经网络或机器学习的一个最大的不同点,特征的自动提取。 

CNN利器之感受野:

通俗点的解释是,特征图上的一个点对应输入图上的区域;

对感受野的理解:

结论: 随着卷积层数的逐渐增加,感受野的范围在逐渐扩大,也就是说,越靠近后面的输出,所受到的图像的像素影响的范围更加宽阔。卷积神经网络正是通过这种层层推进的方式,每一个卷基层都能学习到不同的特征,最后实现相关的识别、分类等功能的。

四、Dropout-随机失活正则化方法

约束过拟合!----Dropout-----训练时关掉一部分学习单元!

五、典型的CNN

 

AlexNet结构

ZFnet只是比上一个调了参数!

 

 

六、调优训练

w参数用别人训练好的初始化。------fine-tuning就是使用已用于其他目标、预训练好模型的权重或者部分权重,作为初始值开始训练。

那fine-tuning的具体做法是?

  • 复用相同层的权重,新定义层取随机权重初始值
  • 调大新定义层的的学习率,调小复用层学习率

 

 

参考:

 

转载地址:http://ussc.baihongyu.com/

你可能感兴趣的文章
MSSQL数据库迁移到Oracle(二)
查看>>
MSSQL日期格式转换函数(使用CONVERT)
查看>>
MSTP多生成树协议(第二课)
查看>>
MSTP是什么?有哪些专有名词?
查看>>
Mstsc 远程桌面链接 And 网络映射
查看>>
Myeclipse常用快捷键
查看>>
MyEclipse更改项目名web发布名字不改问题
查看>>
MyEclipse用(JDBC)连接SQL出现的问题~
查看>>
mt-datetime-picker type="date" 时间格式 bug
查看>>
myeclipse的新建severlet不见解决方法
查看>>
MyEclipse设置当前行背景颜色、选中单词前景色、背景色
查看>>
Mtab书签导航程序 LinkStore/getIcon SQL注入漏洞复现
查看>>
myeclipse配置springmvc教程
查看>>
MyEclipse配置SVN
查看>>
MTCNN 人脸检测
查看>>
MyEcplise中SpringBoot怎样定制启动banner?
查看>>
MyPython
查看>>
MTD技术介绍
查看>>
MySQL
查看>>
MySQL
查看>>