卷积神经网络基本概念补充

卷积(convolution)、通道(channel)

卷积核大小一般为奇数,有中心像素点,便于定位卷积核。

步长(stride)、填充(padding)

卷积核移动的步长(stride)小于卷积核的边长(一般为正方行)时,便会出现卷积核与原始输入矩阵作用范围在区域上的重叠(overlap),卷积核移动的步长(stride)与卷积核的边长相一致时,不会出现重叠现象。

举例:

填充(padding,在原始input的周围进行填充),以保证卷积后的大小与原始 input shape 一致。

定量计算公式:

补零填充(zero padding):保证卷积后的大小与原始尺寸一致

K为卷积核的大小(K通常是奇数),这样如果原始 input 的大小为 w*w,填充后的大小为 (w+k-1)*(w+k-1)(两端都要填充)

卷积后的大小:

其中,w: input 的 height/width;k:卷积核的 height/width;p:表示填充的大小;s:stride 步长;

举例:

7*7 的 input,3*3 的 kernel,无填充,步长为1,则 o = (7-3)/1 +1=5,也即 output size 为 5*5

7*7 的 input,3*3 的 kernel,无填充,步长为2,则 o =(7-3)/2+1=3,也即 output size 为 3*3

感受野

感受野指的是卷积神经网络每一层输出的特征图(feature map)上每个像素点映射回输入图像上的区域大小。第一层卷积层的输出特征图像素的感受野大小等于卷积核的大小,其它卷积层的输出特征图的感受野的大小和它之前所有层的卷积核大小和步长都有关。神经元感受野的范围越大表示其能接触到的原始图像范围就越大,也意味着它能学习更为全局,语义层次更高的特征信息,更能检测出大目标,相反,范围越小则表示其所包含的特征越趋向局部和细节(比如说位置或者颜色)。因此感受野的范围可以用来大致判断每一层的抽象层次,并且我们可以很明显地知道网络越深,神经元的感受野越大。

VGG使用上图第一种方法,用多个3*3卷积核堆叠代替大的卷积核(5*5)来减少参数量。

解释:设原图大小h*w*c,卷积后通道数保持不变(如本文第一张图的图③,卷积后通道数为2,原图通道数为3,要使卷积后通道数保持不变应再加一组卷积核,即卷积核组数=原图通道数),计算卷积核参数的数量:

2个3*3:(3*3*c)*c*2=18c^2

1个5*5:(5*5*c)*c=25c^2

由此可见,得到相同大小的特征图和感受野,用多个3*3卷积核堆叠代替大的卷积核(5*5),参数量有所下降。而且由于是多个卷积层的堆叠,每个卷积层后都加relu激活,那么提取出来特征的非线性就更强

卷积核:k*k,k太大会增加后续的计算量且信息抽象层次不够高,影响网络性能,k太小会造成非常严重的信息丢失,如原始分辨率映射到最后一层的feature map有效区域可能不到一个像素点,使得训练无法收敛。k一般为奇数,有中心像素点,便于定位卷积核。

计算每一层特征图的感受野:

举例:

反卷积

为了更深度的了解反卷积,现在还来看下卷积的数学操作。

1、卷积的数学操作

如果把卷积操作写成矩阵相乘,则对于4 ∗ 4的输入和3 ∗ 3的卷积核的结果如下:

最后得到一个4 ∗ 1的矩阵,可以reshape成2 ∗ 2的矩阵,便是最后卷积的结果,即y=cx

参考1

参考2

参考3

相关推荐
LZXCyrus31 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
YRr YRr1 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
幻风_huanfeng1 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
deephub2 小时前
使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
人工智能·pytorch·深度学习·图嵌入
羞儿2 小时前
【读点论文】Text Detection Forgot About Document OCR,很实用的一个实验对比案例,将科研成果与商业产品进行碰撞
深度学习·ocr·str·std
deephub3 小时前
优化注意力层提升 Transformer 模型效率:通过改进注意力机制降低机器学习成本
人工智能·深度学习·transformer·大语言模型·注意力机制
搏博3 小时前
神经网络问题之二:梯度爆炸(Gradient Explosion)
人工智能·深度学习·神经网络
不高明的骗子3 小时前
【深度学习之一】2024最新pytorch+cuda+cudnn下载安装搭建开发环境
人工智能·pytorch·深度学习·cuda
搏博3 小时前
神经网络问题之:梯度不稳定
人工智能·深度学习·神经网络
Sxiaocai4 小时前
使用 PyTorch 实现并训练 VGGNet 用于 MNIST 分类
pytorch·深度学习·分类