CNN学习

框架:

 

各层作用:

1)输入层

2)卷积层(里面有padding)

3)激活层

4)池化层(里面有padding)

5)全连接FC层

 

一:输入层

进行模型数据的输入以及预处理

 

二:卷积层

局部感知:人的大脑识别图片的过程中,并不是一下子整张图同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。

卷积层的作用:

  1. 提取图像的特征,根据目标函数提取出想要的特征。
  2. “局部感知,参数共享”的特点大大降低了网络参数,保证了网络的稀疏性,防止过拟合,之所以可以“参数共享”,是因为样本存在局部相关的特性。

小卷积核的优势

1增强网络容量和模型复杂度

2减少卷积参数个数

 

三:激活层

所谓激励,实际上是对卷积层的输出结果做一次非线性映射。

如果没有激励函数,将会是一个简单的线性模型,输入和输出是唯一映射关系,映射的复杂性和多样性将会大大降低

 

四:池化

1 池化层的位置以及形式

在激活层激活后,我们需要对提取的局部特征进行处理,一般采用均值或者最大值的方法。

  它可以减小上层隐藏层的计算复杂度,增强鲁棒性,忽略目标的倾斜旋转等变化带来的影响

  它可以保留显著特征、降低特征维度,增大kernel的感受野。

  它可对提取到的特征信息进行降维,一方面使特征图变小,简化网络计算复杂度并在一定程度上避免过拟合的出现;一方面进行特征压缩,提取主要特征。

2 池化带来的影响

pooling操作是特征图缩小,有可能影响网络的准确度,因此可以通过增加特征图的深度来弥补。

3 padding的理解

卷积神经网络使用filter来做元素相乘相加运算来完成卷积运算,目的是为了完成探测垂直边缘这种特征。但这样做会带来两个问题:

  1)卷积运算后,输出图片尺寸缩小。

  2)边缘信息易丢失。

padding可以认为是扩充图片, 在图片周围补充一些像素点,把这些像素点初始化为0。

用途:

  1)保持边界信息,如果没有加padding的话,输入图片最边缘的像素点信息只会被卷积核操作一次,但是图像中间的像素点会被扫描到很多遍,那么就会在一定程度上降低边界信息的参考程度,但是在加入padding之后,在实际处理过程中就会从新的边界进行操作,就从一定程度上解决了这个问题。

  2)可以利用padding对输入尺寸有差异图片进行补齐,使得输入图片尺寸一致。

  3)卷积神经网络的卷积层加入Padding,可以使得卷积层的输入维度和输出维度一致。

  4)卷积神经网络的池化层加入Padding,一般都是保持边界信息和用途1所述一致。

4 padding的模式

SAME:是填充,填充大小, p = (f-1)/2;VALID:是不填充,直接计算输出。

五:输出层(全连接层)

经过前面若干次卷积+激励+池化后,终于来到了输出层,模型会将学到的一个高质量的特征图片全连接层。其实在全连接层之前,如果神经元数目过大,学习能力强,有可能出现过拟合。因此,可以引入dropout操作,来随机删除神经网络中的部分神经元,正则化等来解决此问题。还可以进行局部归一化(LRN)、数据增强,交叉验证,提前终止训练等操作,来增加鲁棒性。

当来到了全连接层之后,可以理解为一个简单的多分类神经网络(如:BP神经网络),通过softmax函数得到最终的输出。整个模型训练完毕。

 

CNN中卷积层输入与输出尺寸

 

 

posted @ 2022-10-07 12:41  sftsgly  阅读(63)  评论(0)    收藏  举报