Pytorch学习日志(8)——卷积基本知识

三个观点

局部性

图片的特征由一些局部的区域决定。

相同性

两张图片具有相同的特征,出现位置不同,但是可以用相同的检测模式去检测。

不变性

对于一张大图片,我们进行下采样,图片的性质基本保持不变。

下采样与上采样

下采样:缩小图片
上采样:放大图片

卷积神经网络和全连接神经网络思想与步骤是相似的。
但是全连接神经网络的开销特别大,对于200x200x3的图片而言会存在十二万个参数。
卷积神经网络在开销上就相对较小。
卷积神经网络的主要层结构有三个:卷积层、池化层和全连接层。
卷积层和全连接层拥有参数,而激活层和池化层不含参数。这些参数通过梯度下降法来更新,最后使得模型尽可能正确地识别出图片类别。

卷积层

参数由可学习的滤波器集合构成。
一般的滤波器尺寸可以是5x5x3,或者3x3x3,宽度和高度可以任意定义但是深度必须是3,因为输入的图片一般是三通道的。
滤波器在 输入数据的宽度和高度上滑动,计算整个滤波器与输入数据任意一处的内积。

局部连接

根据图片特征的局部性,只需要局部就能提取出相应的特征。
与神经元连接的空间大小叫神经元的感受野。
举个例子:
输入数据尺寸为32x32x3,感受野(滤波器尺寸)是5x5,卷积层中每个神经元会有输入数据中5x5x3区域的权重,共75个。其中,感受野的深度必须是3,和输入数据保持一致。

空间排列

卷积层中神经元的数量?排列方式?输出深度?滑动步长?边界填充?

输出深度

输出深度是一个超参数,与使用的滤波器数量一致。输出深度为20则有20个滤波器对数据进行处理。每种滤波器针对一种特征进行激活。

滑动步长

滑动滤波器时,必须指定步长。
步长=1,滤波器每次移动1个像素点。
步长=2,移动2个像素点,使得输出数据变小。

边界填充

将输入数据用0在边界填充。
好处:控制输出数据在空间上的尺寸,最常用来保证输入和输出在空间上尺寸一致。

输出尺寸知多少?

W − F + 2 P S + 1 \frac{W-F+2P}{S}+1 SWF+2P+1
W表示输入数据大小
F表示卷积层中神经元的感受野尺寸
S用来表示步长
P表示边界填充0的数量

比如输入是7x7,滤波器是3x3,步长是1,填充数量为0,那么带入公式可以得到5,即输出空间大小为5x5。
在这里插入图片描述

零填充的使用

上例中,我们看到输入维度是5,输出的维度也是5,通过填充0,保证了输入数据和输出数据具有相同的空间尺寸。

步长的限制

步长的选择是有限制的,比如输入尺寸为10,不使用0填充,滤波器尺寸为3,当步长为2时,输出尺寸为4.5,结果不是一个整数,这说明神经元不能整齐对称的滑过输入数据体,这样的超参数设置是无效的。

参数共享

卷积层通过参数共享可以有效地减少参数个数,这主要基于特征的相同性。
举个例子,比如一个卷积层的输出为20x20x32,那么神经元个数为12800个,而若窗口大小为3x3,输入数据体深度为10,那么每个输出神经元有900个参数,总共有11520000个参数,显然运算速度缓慢。
一个滤波器能检测一个位置的特征,那么也能检测另一个位置的相同的特征,这样我们只需要一个滤波器来解决返回着12800个神经元,这样参数有900x32=28800个。
注意:有时候,相似性的假设是没有意义的。我们希望图片的不同位置学习到不同的特征。比如人脸识别。

总结

在这里插入图片描述

池化层

通常会在卷积层之间周期性的插入一个池化层,其作用就是逐渐降低数据体的空间尺寸,减少网络中的参数数量,减少计算资源耗费,有效控制过拟合。
通常是取这些窗口的最大值作为输出结果。在这里插入图片描述
池化层之所有用,主要是因为图片特征具有不变性。
最常用的池化层形式是尺寸2x2的窗口,滑动步长为2。
将其中75%的激活信息都丢掉,选择其中最大的保留,希望能够激活里面数值大的特征,去除一些噪声信息。
在这里插入图片描述
其他池化函数:平均池化、L2范数池化。
实践证明,在卷积层之间应如最大池化效果最好,而平均池化一般放在卷积神经网络最后一层。

全连接层

卷积神经网络最常见的就是将一些卷积层和ReLU层放在一起,有可能在ReLU层前面加上批标准化层,随后紧跟着池化层,不断重复,直到图像在空间上被缩小到一个足够小的尺寸,然后将特征图展开,连接几层全连接层,最后输出结果。
在基本的CNN网络中,全连接层的作用是将经过多个卷积层和池化层的图像特征图中的特征进行整合,获取图像特征具有的高层含义,之后用于图像分类。在CNN网络中,全连接层将卷积层产生的特征图映射成一个固定长度(一般为输入图像数据集中的图像类别数)的特征向量。这个特征向量包含了输入图像所有特征的组合信息,虽然丢失了图像的位置信息,但是该向量将图像中含有最具有特点的图像特征保留了下来以此完成图像分类任务。从图像分类任务的角度来看,计算机只需要对图像内容进行判定,计算输入图像具体所属类别数值(所属类别概率),将最有可能的类别输出即可完成分类任务。

小滤波器的有效性

一般而言,几个小滤波器的卷积层组合比一个大滤波器的卷积层要好。
比如层层堆叠了3个3x3的卷积层,中间含有非线性激活层,第一层对输入数据的感受野是3x3,第二层对第一层的的感受野也是3x3,这样对输入数据就是5x5,以此类推,第三层对第一层的输入数据的感受野就是7x7。
如果此时直接单独用一个7x7大小的卷积层,那么所有神经元的感受野也是7x7,但是会有一些缺点。
1.多个卷积层首先与非线性激活层交替的结构比单一卷积层的结构更能提取深层的特征。
2.假设输入数据体的深度是C,输出数据体的深度也是C,那么单独的7x7卷积层会有7x7xCxC的参数个数,而另一种组合情况则有3x3x3xCxC的参数,参数更少。
优点:反向传播更新参数时会占用更多的内存。

网络的尺寸

根据经验!没有严格的数学的证明。

输入层

应该能被2整除很多次。
32、64、96、224.

卷积层

尽可能小尺寸的滤波器,比如33、55。
滑动步长取1。
注意零填充,保证不改变数据体尺寸。
77这样的大滤波器尺寸通常用在对原始图像的卷积层上。

池化层

对输入的数据空间维度进行下采样。
常用2x2,步长为2。
偶尔用3x3,步长为2。
很少超过3,因为这会造成信息丢失。

零填充

输入输出在空间上维度保持一致,不然边缘信息会很快损失。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值