七、卷积神经网络1

版权声明:转载需转载声明 https://blog.csdn.net/qq_32285693/article/details/84351068

                                                                卷积神经网络1

1、卷积神经网络简介

    卷积神经网络是各种神经网络中被使用最广泛的一种,由LeCun在1989年提出,被成功应用于手写字符图像的识别

    在这之后的很长时间内,卷积神经网络没有得到广泛关注和大规模应用

    2012年,有更深层次的AlexNet网络在图像分类任务中取得成功,此后卷积神经网络高速发展

    卷积神经网络通过卷积和池化层自动学习图像在各个尺度上的特征

    卷积神经网络是一种仿生的方法,借鉴自动物的视觉神经系统

 

2、视觉神经系统的原理

    人在认知图像时是分层进行的,首先理解的是颜色和亮度,然后是边缘、角点、直线等局部细节特征,接下来是纹理、形状、区域等更加复杂的信息和结构,最后形成整个物体的概念

    视觉神经学科之前对视觉机理的研究已经证明了大脑的视觉皮层具有分层结构

    眼睛将看到的物体成像在视网膜上,视网膜把光学信号转换成电信号,传递到大脑的视觉皮层(Visual cortex),视觉皮层是大脑中负责处理视觉信号的部分

 

    David和Wiese的实验,1959

    Hubel D.H,T.N.Wiesel.Receptive Fields Of Single Neurones In The Cat’s Striate Cortex.Journal Of Physiology,(1959)148,574-591

    在猫的初级视觉皮层插入电极,在猫的眼前展示各种形状、空间位置、角度的光带,然后测量大脑神经元放出的电信号

    实验发现,在当前处于某一位置和角度时,电信号最为强烈;不同的神经元对各种空间位置和方向偏好不同,视觉神经细胞具有选择性

   

 

    从视网膜传来的信号首先到达初级视觉皮层(primary visual cortex),即v1皮层;V1皮层简单神经元对一些细节、特定方向的图像信号敏感。V1皮层处理之后,将信号传导到V2皮层;V2皮层将边缘和轮廓信息表示成简单形状,然后由V4皮层中的神经元进行处理,它对颜色信息敏感;复杂物体最终在IT皮层(inferior temporal cortex)被表示出来

 

3、卷积神经网络的核心思想

    卷积神经网络可以看成是对视觉神经系统机制的简单模仿

    由卷积层、池化层、全连接层构成,通过多个卷积、池化层提取图像在各个尺度上的特征

    每个卷积层包含多个卷积核,用这些卷积核从左向右、从上往下一次扫描整个图像,得到成为特征图(feature map)的输出数据

    网络前面的卷积层捕捉图像局部、细节信息,有小的感受野,即输出图像的每个像素只能对应输入图像很小的一个范围;后面的卷积层感受野逐层加大,用于捕获图像更复杂,更抽象的信息

    经过多个卷积层的运算,最后得到图像在各个不同尺度的抽象表示

 

4、卷积运算

    在数字图像处理领域,卷积是一种常见的运算

    可用于图像去噪、增强、边缘检测等问题,还可以用于提取图像的特征

    用一个称谓卷积核的矩阵自上而下、自左而右在图像上滑动,将卷积核矩阵的各个元素在与它在图像上覆盖的对应位置的元素相乘,然后求和,得到输出值

 

Sobel边缘检测算子

               

    卷积运算

   

    卷积公式

   

经过卷积运算之后图像尺寸变小了,如果原始图像时m x n,卷积核为s x s卷积结果图像为

(m-s+1) x (n-s+1)

为了保证卷积之后的图像大小不变,可以做填充操作-padding,在周边补0,然后用尺寸扩大之后的图像进行卷积

需要考虑的问题

卷积核的尺寸,一般行数和列数相等,并且为奇数

卷积步长,一般为1,也可以设置成其他值

 

5、卷积层的原理

在图像处理中,卷积核矩阵的数值是根据人工经验设计的

可以通过机器学习的手段来自动生成这些卷积核,从而描述各种不同类型的特征

卷积圣经网络就是通过自动学习的手段来得到各种有用的卷积核

卷积核的每个卷积核实现的映射为

   

这里需要使用激活函数,原因和全连接神经网络相同

需要多个卷积层

每层需要多个卷积核

 

感受野的概念

卷积核在一次卷积操作时对原图像的作用范围称为感受野,不同的卷积层有不同的感受野。网络前面的感受野小,用于提取图像细节的信息;后面的卷积层感受野更大,用于提取更大范围的、高层的抽象信息 

 

6、多通道卷积

    卷积层每个卷积核的通道数必须和输入特征图像的通道数相同

         本层输出图像的通道数等于本层的卷积核数

 

7、池化层的原理

    特征图像的维数很高,维数高不仅计算耗时,而且容易导致过拟合

    引入下采样奇数,也成为池化(pooling)操作

    对图像的某一个区域用一个值代替,如最大值或平均值。如果采用最大值,叫做max池化;如果采用均值,叫做均值池化

    除了降低图像尺寸之外,池化带来的另一个好处是一定程度的平移、旋转不变形,因为输出值由图像的一片区域计算得到,对于小幅度的平移和旋转不敏感

    池化层没有参数

 

池化核的大小

池化步长

Max池化是非线性操作,现在用的很多

池化例子:

   

8、全连接层

    和全连接神经网络的全连接层相同

    第一个全连接层从最后一个卷积层或池化层接收输入数据

 

9、卷及网络结构

    标准的卷积神经网络由卷积层,池化层,全连接层构成

    网络的前半部分为卷积层和池化层,二者交替进行

    网络的后半部分为全连接层

    也有其他变种,如全连接网络;或者几个卷积层之后接一个池化层

 

10、训练算法简介

    卷积层的参数即卷积核,和全连接层的参数一起,通过训练确定,池化层没有参数需要学习

    核心问题是如何计算卷积核的梯度值,如何将卷积层、池化层的误差项计算出来并传播到前一层

 

11、卷积层的反向传播

    正向传播的计算公式为

  

    卷积输出图像的任意一个元素都有与卷积核矩阵的任意一个元素都有关,因为输出图像的每一个像素值都共用了一个卷积核模板

    反向传播时需要计算损失函数对卷积核以及偏置项的偏导数,和全连接网络不通的是,卷积核要作用于同一个图像的多个不通位置

  

    第二个乘积项

   

    第三个乘积项

   

    由此得到卷积核的偏导数计算公式

     

    偏置项的偏导数

   

定义误差项

   

    这是一个矩阵,尺寸和卷积输出图像相同

   

    由此得到根据误差项计算卷积核偏导数的公式为

   

    这实际上是一个卷积运算,误差项充当卷积和,而本卷积的输入图像充当此次卷积的输入图像。

   

12、池化层的反向传播

    池化层没有要通过学习得到的参数,只需传播误差项

    正向传播时的下采样变换为

   

    反向传播时使用上采样

   

    如果是均值池化,正向传播时的计算公式为

    

    反向传播时,对输入值的偏导数为

   

    具体的做法为将传入的误差项每个元素复制多份,展开成一个块,并做如下计算

  

 

    如果是max池化

    在进行正向传播时,需要记住最大值的位置

    反向传播时,对于扩充的块,最大值位置处的元素设置为δ,其他位置全部置为0

    正向传播时的计算公式

    

    反向传播时的导数值为

  

    如果这个元素是最大值,则

   

    否则

  

 

13、全连接层的反向传播

    全连接的反向传播和普通神经网络是相同的

 

14、完整的反向传播算法

   

15、随机梯度下降法

    神经网络的训练样本有单例样本模式和批量模式两种方案

    卷积神经网络的训练样本数一般很大,大多采用随机梯度下降法(stochastic gradient descent,简称SGD)

    随机梯度下降法每次参与梯度下降迭代的只有一部分样本,这称为mini-batch随机梯度下降

    如果每次用所有样本进行反向传播和梯度下降迭代,损失函数为

    

    只是用一部分随机选取的样本来定义损失函数

    

    其中M<<N

    随机梯度下降法在数学期望的意义下收敛,即随机采样产生的梯度的期望值是真实的梯度

    Batch大小的确定

    计算性能,一般为2的n次方

 

16、参数值初始化

    一般初始化为随机值

    大多采用均匀分布、正态分布的随机数生成,然后用神经元的数量做归一化

 

17、学习率的设定

    固定的学习率

    动态调整学习率-人工定义的规则

 

18、梯度下降法的改进

    改进的目标:收敛的更快,收敛的更好(如抵抗局部极小值,鞍点问题)

    改进点:自适应学习率,每一维有自己的学习率,积累之前的信息

 

动量项

   

AdaGrab算法

 

RMSProp算法

 

 

AdaDelta算法

 

Adam算法

随机梯度下降法的改进

 

 

19、迁移学习与fine tune

    机器视觉中有一些特征具有共性,他们对各种物体的识别具有普遍性,如边缘、角点、纹理特征

    卷积网络学习得到的特征可能会具有通用性

 

    能不能将一个数据集上训练的网络作用于另一个任务?

    直接用不是一种好的选择,另外一种思路是把这个网络的参数作为训练的初始值,在新的任务上继续训练,这种做法称为fine-tune,即网络微调

    大量的实验结果和应用结果证明,这种微调是有效的

    说明卷积神经网络在一定程度上具有迁移学习的能力,卷积层学习到的特征具有通用性。

猜你喜欢

转载自blog.csdn.net/qq_32285693/article/details/84351068