1. 卷积网络的概述
1.1 卷积网络与传统网络的差别
传统的神经网络包括输入层,中间隐藏层(隐藏层可以有多层),以及输出层,而卷积神经网络则包括
传统输入层输入784就是驶入784个像素点,而卷积神经网络输入则是输入28x28x1的一个三维矩阵。(HxWxC)
1.2 卷积网络整体架构
卷积神经网络的整体架构包括输入层,卷积层,池化层以及全连接层。
输入层就是输入28x28x1的一个输入数据,卷积层用于提取特征,池化层主要用于压缩特征。全连接层主要通过一个权重,把输入层和隐藏层连接在一起。
2.卷积层
2.1 卷积的作用
当我们在进行特征提取时,对于一张图片,我们对于不同地方侧重点肯定会不同。
我们在处理一张图片时,我们无法一次提取图片的全部信息,我们会把图片分成不同的部分,例如对于一只猫,我们会侧重提取它爪子的信息,它胡须的信息以及它鼻子的信息等等。
我们在使用卷积之前,我们要先把原始图像进行简单的分割,分割成多个不同的小区域,每个小区域由不同的像素点组成。我们在处理信息时,每个区域要进行不同的特征提取。
卷积的目的是在我们划分的地方来回滑动进行提取一个特征值
2.2 卷积特征计算方法
2.2.1 图像颜色通道
首先我们使用的彩色图像都是RGB图像,是一个三维通道。但是在实际处理时,我们需要把三个通道拆开,拆成r通道,g通道,以及b通道。最后卷积核处理完毕时,我们再去把卷积得到的结果加到一起。
2.2.2 卷积具体工作流程
就是在处理信息,我们把图像信息进行拆分,R通道,G通道,B通道,最后把得到的结果进行组合在一起。得到一个全新的结果。
具体运算方式,就是把特征提取矩阵里的内容与卷积核内容进行乘法运算(注意不是矩阵的乘法)最后得到的结果再去相加。
我们通过上面的运算方式得到特征图。
对于同一组数据,我们可以使用不同的卷积核来进行提取。例如下图,我们使用了六个不同的卷积核,我们得到结果后,我们可以得到六个特征图。下图我们使用两个卷积核去运行,得到的结果是不同的。
2.3 步长以及卷积核
2.3.1 卷积的工作方式
在实际工作中,我们并不是卷积提取一次信息就能够完成实验的。一般我们会先提取低水平特征,然后对低水平特征提取到高水平特征,最后才能训练分类。
我们对一个图片进行特征提取,对提取出的特征图继续进行特征提取,再进行特征提取,如此循环。
下图中,eg是卷积核的数量,我们卷积之后特征图的深度和卷积核的数量相同。
2.3.2 滑动窗口的步长
步长代表每次滑动的长度,步长为1,则代表每次滑动一个单元格,步长为2则是每次滑动两个单元格。步长越小得到的特征图也就越大。
当我们步长较小时,我们慢慢地提取特征,细腻地提取特征,得到的特征比较丰富。但是计算效率慢。
当我们步长较大时,我们快速地提取特征,大刀阔斧地提取特征,得到的特征比较模糊。优点就是计算效率快。
2.3.4 边缘填充
就是在正常处理信息时,我们在处理图像边界时,在读取信息时,由于矩阵滑动是连续的,所以在读取信息时,就会有些数据被读取两次,有些边缘信息只被读取一次。越往边界的数据他被读取的次数就越少,越往中间的数据他被读取的次数越多。此时我们就需要进行边界填充。例如下图红框外全是边界填充的内容。边界填充可以弥补边界信息利用不充分的问题。
2.3.5 卷积核个数
就是我们要得到多少个特征图,就设置多少个卷积核,我们需要十个特征图就设置十个卷积核,我们需要二十个特征图就设置二十个卷积核。但是要注意 每个卷积核信息都是不同的。
2.4 特征图的尺寸与参数共享
特征图的大小取决于划分区域的大小,具体计算结果如下。
理论上说,对于不同的区域,我们使用不同的卷积核会更好一些,但是这会导致我们的计算量过大。
所以我们使用相同的卷积核,这种情况我们成为参数共享。(就是用同样一组卷积核来进行特征提取)卷积核不变。
3. 池化层
池化层中没有设置任何矩阵的运算。
池化层的主要目的是压缩特征。
卷积层提取特征之后,并不是所有的特征都特别重要,池化层则主要是进行特征。
列入下图,池化层的作用就是把卷积层得到的特征图进行特征提取。
在处理信息时,池化层只能改变特征图的长和宽,并不能改变特征图的大小。
最大池化,每次压缩特征图的最大值。
平均池化选取平均值(效果不好)
4. 全连接层
基本每一个卷积层后面都会跟一个激活函数。
假设我们得到的是32x32x10的一个类别,最后依靠全连接层来进行分类。
全连接层只能链接一维的数据,我们分类的类别是5,所以输入的数据为(10240,0,5)。(就是把10240数据转化为5个物品的分类概率)
5. 经典网络架构
5.1 Alexnet网络结构
非常老的卷积神经网络,目前使用不多。
第一层使用了11x11的卷积核,所以提取特征效果不好,步长为4,步长太大了,不能细致提取特征。pad(边界填充)为0,这种情况也不常见。
5.2 VGG神经网络
和前期网络相比,它的卷积核比较小。
它有一个特点,就是当我们使用池化层之后,会损失一些信息,此时VGG增加了特征图的个数,进行信息的弥补。
和Alexmet网络相比,Vgg神经网络的深度更深一些,并且卷积更细致一些,以及神经网络运算时间更长一些。
5.3 残差网络
研究人员在研究神经网络时发现并不是说卷积层的深度越深,实验效果就越好。因为后面的卷积层提取的是前一个卷积层的特征,我们并不能保证每一次卷积层的卷积效果都特别良好。于是 研究人员又研究了残差网络。
从下面的图像我们可以看到20层的效果明显比56层的效果要好。所以研究人员设计了残差网络。
研究人员增加了一个同等映射的问题,就是我们知道一个卷积层的效果不好,我们就把他的权重设置为0,我们不适用效果不好的层。如果b效果不好,我们直接把a的数据传入到c,这样可以增强神经网络的能力。
我们把效果不好的层次选择权重设置为0。下面公式的x就是一个保底机制,它能保证我们的神经网络一直训练之后,结果不会比原来差。
改造后,层数越高,它的准确性越高。
#