首页 > 其他分享 >卷积和池化

卷积和池化

时间:2024-06-21 21:00:10浏览次数:3  
标签:Convolution 卷积 分组 计算 池化 输入

目录

一、卷积的基本属性

二、卷积的计算过程

三、卷积的各种类型

1、标准卷积

2、反卷积(转置卷积)(Deconvolution / Transposed Convolution)        卷积是对输入图像提取出特征(可能尺寸会变小),而所谓的“反卷积”便是进行相反的操作。但这里说是“反卷积”并不严谨,因为并不会完全还原到跟输入图像一样,一般是还原后的尺寸与输入图像一致,主要用于向上采样。从数学计算上看,“反卷积”相当于是将卷积核转换为稀疏矩阵后进行转置计算,因此,也被称为“转置卷积”

3、空洞卷积(膨胀卷积)(Dilated Convolution / Atrous Convolution)

4、可分离卷积(Separable Convolutions)

5、扁平卷积(Flattened convolutions)

6、分组卷积(Grouped Convolution)        2012年,AlexNet论文中最先提出来的概念,当时主要为了解决GPU显存不足问题,将卷积分组后放到两个GPU并行执行。

7、混洗分组卷积(Shuffled Grouped Convolution)

四、卷积、池化、空洞卷积的输入输出大小计算公式

五、常规卷积和深度可分离卷积的参数量

六、反池化原理

1、 平均池化和反平均池化

2、 最大池化和反最大池化

七、池化层的作用


一、卷积的基本属性

1.卷积核(Kernel):卷积操作的感受野,直观理解就是一个滤波矩阵,普遍使用的卷积核大小为3×3、5×5等;

2.步长(Stride):卷积核遍历特征图时每步移动的像素,如步长为1则每次移动1个像素,步长为2则每次移动2个像素(即跳过1个像素),以此类推;

3.填充(Padding):处理特征图边界的方式,一般有两种,一种是对边界外完全不填充,只对输入像素执行卷积操作,这样会使输出特征图的尺寸小于输入特征图尺寸;另一种是对边界外进行填充(一般填充为0),再执行卷积操作,这样可使输出特征图的尺寸与输入特征图的尺寸一致;

4.通道(Channel):卷积层的通道数(层数)。

如下图是一个卷积核(kernel)为3×3、步长stride)为1、填充(padding)为1的二维卷积:

 

二、卷积的计算过程

        卷积的计算过程非常简单,当卷积核在输入图像上扫描时,将卷积核与输入图像中对应位置的数值逐个相乘,最后汇总求和,就得到该位置的卷积结果。不断移动卷积核,就可算出各个位置的卷积结果。如下图:

三、卷积的各种类型

卷积现在已衍生出了各种类型,包括标准卷积反卷积可分离卷积分组卷积等等,下面逐一进行介绍。

1、标准卷积

(1)二维卷积(单通道卷积版本)(2D Convolution: the single channel version)

只有一个通道的卷积。

一个卷积核(kernel)为3×3、步长(stride)为1、填充(padding)为0的卷积

(2)二维卷积(多通道版本)(2D Convolution: the multi-channel version)

拥有多个通道的卷积,例如处理彩色图像时,分别对R, G, B这3个层处理的3通道卷积,如下图:

 

 再将三个通道的卷积结果进行合并(一般采用元素相加),得到卷积后的结果,如下图:

(3)三维卷积(3D Convolution)

卷积有三个维度(高度、宽度、通道),沿着输入图像的3个方向进行滑动,最后输出三维的结果,如下图:

(4)1x1卷积(1 x 1 Convolution)

当卷积核尺寸为1x1时的卷积,也即卷积核变成只有一个数字。如下图:

从上图可以看出,1x1卷积的作用在于能有效地减少维度,降低计算的复杂度。1x1卷积在GoogLeNet网络结构中广泛使用。

2、反卷积(转置卷积)(Deconvolution / Transposed Convolution)
        卷积是对输入图像提取出特征(可能尺寸会变小),而所谓的“反卷积”便是进行相反的操作。但这里说是“反卷积”并不严谨,因为并不会完全还原到跟输入图像一样,一般是还原后的尺寸与输入图像一致,主要用于向上采样。从数学计算上看,“反卷积”相当于是将卷积核转换为稀疏矩阵后进行转置计算,因此,也被称为“转置卷积”

如下图,在2x2的输入图像上应用步长为1、边界全0填充的3x3卷积核,进行转置卷积(反卷积)计算,向上采样后输出的图像大小为4x4。

3、空洞卷积(膨胀卷积)(Dilated Convolution / Atrous Convolution)


        为扩大感受野,在卷积核里面的元素之间插入空格来“膨胀”内核,形成“空洞卷积”(或称膨胀卷积),并用膨胀率参数L表示要扩大内核的范围,即在内核元素之间插入L-1个空格。当L=1时,则内核元素之间没有插入空格,变为标准卷积。如下图为膨胀率L=2的空洞卷积:

4、可分离卷积(Separable Convolutions)

(1)空间可分离卷积(Spatially Separable Convolutions)

空间可分离卷积是将卷积核分解为两项独立的核分别进行操作。一个3x3的卷积核分解如下图:

 

分解后的卷积计算过程如下图,先用3x1的卷积核作横向扫描计算,再用1x3的卷积核作纵向扫描计算,最后得到结果。采用可分离卷积的计算量比标准卷积要少。

 

(2)深度可分离卷积(Depthwise Separable Convolutions)

深度可分离卷积由两步组成:深度卷积和1x1卷积。

首先,在输入层上应用深度卷积。如下图,使用3个卷积核分别对输入层的3个通道作卷积计算,再堆叠在一起。

 再使用1x1的卷积(3个通道)进行计算,得到只有1个通道的结果

重复多次1x1的卷积操作(如下图为128次),则最后便会得到一个深度的卷积结果。

 完整的过程如下:

 

5、扁平卷积(Flattened convolutions)

        扁平卷积是将标准卷积核拆分为3个1x1的卷积核,然后再分别对输入层进行卷积计算。这种方式,跟前面的“空间可分离卷积”类似,如下图:

 

6、分组卷积(Grouped Convolution)
        2012年,AlexNet论文中最先提出来的概念,当时主要为了解决GPU显存不足问题,将卷积分组后放到两个GPU并行执行。

        在分组卷积中,卷积核被分成不同的组,每组负责对相应的输入层进行卷积计算,最后再进行合并。如下图,卷积核被分成前后两个组,前半部分的卷积组负责处理前半部分的输入层,后半部分的卷积组负责处理后半部分的输入层,最后将结果合并组合。

 

7、混洗分组卷积(Shuffled Grouped Convolution)


        在分组卷积中,卷积核被分成多个组后,输入层卷积计算的结果仍按照原先的顺序进行合并组合,这就阻碍了模型在训练期间特征信息在通道组之间流动,同时还削弱了特征表示。而混洗分组卷积,便是将分组卷积后的计算结果混合交叉在一起输出。

        如下图,在第一层分组卷积(GConv1)计算后,得到的特征图先进行拆组,再混合交叉,形成新的结果输入到第二层分组卷积(GConv2)中:

                        

四、卷积、池化、空洞卷积的输入输出大小计算公式


(1)卷积对于卷积经过某层后的特征图大小计算方式:h2 = (h1-k+2p)/s + 1 w2 = (w1-k+2p)/s + 1总结:卷积输出大小=[(输入大小-卷积核大小+2*Padding)/步长]+1 所以当stride为1时,当卷积核的大小比padding的两倍大1时,可以不改变特征图的尺寸,只改变通道数。

(2)池化对于池化:H=(H-K)/S+1 W=(W-K)/S+1总结:池化输出大小=[(输入大小-卷积核大小)/步长]+1

(3)空洞卷积空洞卷积的等效卷积核大小:ke = k + (k − 1)(r − 1)k为原始卷积核大小,r为diarate参数。输出计算同卷积运算。

注意:卷积(除不尽)向下取整,池化(除不尽)向上取整。

五、常规卷积和深度可分离卷积的参数量


普通卷积:3x3x3x4=108

3x3是卷积核尺寸,3是输入图片通道数目,4是输出卷积核的个数。

深度可分离卷积:

DW:3x3x3x1=27

这里卷积核个数其实只设置为1。会形成3张feature map

PW:1x1x3x4=12

1x1为卷积核的尺寸,3为上一层feature map的数量,4为最终需要的维度。其实这里我们也得到了4维的feature map。

total: 27+12=39

明显可以看到,深度可分离卷积计算量比普通卷积小很多,只有其近三分之一的计算量。

六、反池化原理


        反池化是池化的逆操作,是无法通过池化的结果还原出全部的原始数据。因为池化的过程就只保留了主要信息,舍去部分信息。如果想从池化后的这些主要信息恢复出全部信息,则存在信息缺失,这时只能通过补位来实现最大程度的信息完整。

池化有两种:最大池化和平均池化,其反池化也需要与其对应。

1、 平均池化和反平均池化


        首先还原成原来的大小,然后将池化结果中的每个值都填入其对应原始数据区域中相应位置即可。

平均池化和反平均池化的过程如下:

 

2、 最大池化和反最大池化


        要求在池化过程中记录最大激活值的坐标位置,然后在反池化时,只把池化过程中最大激活值所在位置坐标值激活,其他的值设置为0.当然,这个过程只是一种近似。因为在池化过程中,除了最大值的位置,其他的值也是不为0的。

最大池化和反最大池化的过程如下:

 

七、池化层的作用


        池化层大大降低了网络模型参数和计算成本,也在一定程度上降低了网络过拟合的风险。概括来说,池化层主要有以下五点作用:

  • 增大网络感受野
  • 抑制噪声,降低信息冗余
  • 降低模型计算量,降低网络优化难度,防止网络过拟合
  • 使模型对输入图像中的特征位置变化更加鲁棒

 

标签:Convolution,卷积,分组,计算,池化,输入
From: https://blog.csdn.net/lbr15660656263/article/details/139869546

相关文章

  • 卷积神经网络-AlexNet
    AlexNet一些前置知识top-1和top-5错误率top-1错误率指的是在最后的n哥预测结果中,只有预测概率最大对应的类别是正确答案才算预测正确。top-5错误率指的是在最后的n个预测结果中,只要预测概率最大的前五个中含有正确答案就算预测正确。max-pooling层最大池化又叫做subsamplin......
  • cv知识点(卷积和池化)
    一、卷积的基本属性1.卷积核(Kernel):卷积操作的感受野,直观理解就是一个滤波矩阵,普遍使用的卷积核大小为3×3、5×5等;2.步长(Stride):卷积核遍历特征图时每步移动的像素,如步长为1则每次移动1个像素,步长为2则每次移动2个像素(即跳过1个像素),以此类推;3.填充(Padding):处理特征图边界的方......
  • 神经网络与模式识别课程报告-卷积神经网络(CNN)算法的应用
     =======================================================================================完整的神经网络与模式识别课程报告文档下载:https://wenku.baidu.com/view/393fbc7853e2524de518964bcf84b9d528ea2c92?aggId=393fbc7853e2524de518964bcf84b9d528ea2c92&fr=catalogM......
  • 基于卷积神经网络的图像风格迁移研究(论文)
    目录1绪论11.1研究背景11.2研究目的和意义11.2.1研究的应用价值11.2.2研究的前沿性和学术性31.3研究内容51.3.1风格建模51.3.2图像重建51.4研究现状和挑战61.4.1评估方法61.4.2理论支撑61.4.3风格迁移的三向权衡71.5前人研究工作7......
  • 【YOLOv8改进】CAFM(Convolution and Attention Fusion Module):卷积和注意力融合模块
    摘要摘要——高光谱图像(HSI)去噪对于高光谱数据的有效分析和解释至关重要。然而,同时建模全局和局部特征以增强HSI去噪的研究却很少。在本文中,我们提出了一种混合卷积和注意力网络(HCANet),该网络结合了卷积神经网络(CNN)和Transformers的优势。为了增强全局和局部特征的建模,我们设计了......
  • 基于python-CNN卷积神经网络的鱼类识别-含数据集+pyqt界面
    代码下载地址:https://download.csdn.net/download/qq_34904125/89434763本代码是基于pythonpytorch环境安装的。下载本代码后,有个requirement.txt文本,里面介绍了如何安装环境,环境需要自行配置。或可直接参考下面博文进行环境安装。深度学习环境安装教程-anaconda-python-......
  • 数字信号处理作业 序列的卷积 实现 + MATLAB 源码
    实现有限长序列的基本运算(包括:加法、乘法、累加、移位、翻褶、抽取、插值、卷积和),并以GUI的形式将这些运算整合起来,使用者可通过向GUI输入任意有限长序列得到对应的运算结果。加法:对两个序列中对应位置的元素进行相加,得到一个新的序列,要求两个序列的长度......
  • 狄利克雷卷积学习笔记
    0.更新upd2023.5.18更新了狄利克雷卷积新的一个性质,更新了常用结论的证明1.正文这玩意儿是这么说的:定义一个运算:$*$为狄利克雷卷积。他是干啥的呢?把两个数论函数进行一个运算。\[h(n)=(f*g)(n)=\sum_{d|n}f(d)g(\frac{n}{d})\]当\(f,g\)都是积性函数时,他们的狄利......
  • 分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测
    分类预测|Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测目录分类预测|Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料分类效果基本描述1.Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机......
  • PyTorch学习9:卷积神经网络
    文章目录前言一、说明二、具体实例1.程序说明2.代码示例总结前言介绍卷积神经网络的基本概念及具体实例一、说明1.如果一个网络由线性形式串联起来,那么就是一个全连接的网络。2.全连接会丧失图像的一些空间信息,因为是按照一维结构保存。CNN是按照图像原始结构进......