| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 卷积总结篇(普通卷积、转置卷积、膨胀卷积、分组卷积和深度可分离卷积) -> 正文阅读 |
|
[人工智能]卷积总结篇(普通卷积、转置卷积、膨胀卷积、分组卷积和深度可分离卷积) |
目录二、转置卷积(Convolution Transposed,又叫反卷积、解卷积) 三、膨胀卷积( Dilated Convolution,又叫空洞卷积、扩张卷积) 1.逐通道卷积(Depthwise Convolution即DW卷积) ?2.逐点卷积(Pointwise Convolution即PW卷积) 什么是卷积? ?????????卷积是指在滑动中提取特征的过程,可以形象地理解为用放大镜把每步都放大并且拍下来,再把拍下来的图片拼接成一个新的大图片的过程。 一、普通卷积:(“卷积”就是“加权求和”)更详细请看笔者的博文:矩阵乘法实现卷积运算_caip12999203000的博客-CSDN博客_矩阵乘法实现卷积 1.以2D卷积为例,2D卷积是一个相当简单的操作
???????? 这里原理上使用的是滑动窗口,但也可以有更多高效的方法,例如:笔者的另外一篇文章,使用的是矩阵乘法实现的卷积运算。 2.卷积后的尺寸大小转换公式?(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,W2为输出的矩阵大小) 3.功能??????? 特征图大小不变或缩小。根据公式通过调整P和S参数可实现特征图大小不变以及缩小。 4.各个指标比较(参数量、计算量、感受野)(输入的通道数为M,尺寸为DF x DF ,输出通道数为N,卷积核大小为DK? x DK ,忽略偏执b。) 5.代码实现Pytorch(参考)
结果展示: 二、转置卷积(Convolution Transposed,又叫反卷积、解卷积)更详细请看笔者的博文:转置卷积(Convolution Transposed又叫反卷积、解卷积)_caip12999203000的博客-CSDN博客 1.概念或背景????????通常,对图像进行多次卷积运算后,特征图的尺寸会不断缩小。而对于某些特定任务 (如图像分割和图像生成等),需将图像恢复到原尺寸再操作。这个将图像由小分辨率映射到大分辨率的尺寸恢复操作,叫做?上采样 (Upsample)。 2.卷积后的尺寸大小转换公式?(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,W2为输出的矩阵大小) 3.功能????????特征图变大(上采样)。将低分辨率的特征图样上采样到原始图像的分辨率大小,以给出原始图片的分割结果。 4.各个指标比较(参数量、计算量、感受野)(输入的通道数为M,尺寸为DF x DF ,输出通道数为N,卷积核大小为DK? x DK ,忽略偏执b。) 5.转置卷积用途1)在 DCGAN,生成器将随机值转变为一个全尺寸图片,此时需用到转置卷积。 2)在语义分割中,会在编码器中用卷积层提取特征,然后在解码器中恢复原先尺寸,从而对原图中的每个像素分类。该过程同样需用转置卷积。经典方法有 FCN 和 U-net。 3)CNN 可视化:通过转置卷积将 CNN 的特征图还原到像素空间,以观察特定特征图对哪些模式的图像敏感。 6.代码实现Pytorch(参考)
结果展示 三、膨胀卷积( Dilated Convolution,又叫空洞卷积、扩张卷积)更详细请看笔者的博文: 膨胀卷积(Dilated convolutions)(又成空洞卷积、扩张卷积)_caip12999203000的博客-CSDN博客 1.概念或背景????????膨胀卷积是在标准卷积的Convolution map的基础上注入空洞,以此来增加感受野(reception field)。因此,膨胀卷积在标准卷积的基础上又多了一个超参数(hyper-parameter)称之为膨胀率(dilation rate),该超参数指的是kernel的间隔数量。膨胀卷积是为解决语义分割任务而提出的。 2.卷积后的尺寸大小转换公式(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,a为膨胀率,W2为输出的矩阵大小) 3.功能????????增大感受野,卷积核中间填充0。在于普通卷积相同的计算条件下的情况下,其卷积课增大特征图的感受野。另外,通过修改padding的大小,可以保证输入输出特征图的shape不变。 4.各个指标比较(参数量、计算量、感受野)(输入的通道数为M,尺寸为DF x DF ,输出通道数为N, a为膨胀率,卷积核大小为DK? x DK ,忽略偏执b。) 5.膨胀卷积用途1)膨胀卷积(Dilated Convolution),广泛应用于语义分割与目标检测等任务中,语义分割中经典的deeplab系列与DUC对空洞卷积进行了深入的思考。目标检测中SSD与RFBNet,同样使用了空洞卷积。 2)ESPNet, ESP模块模块包含point-wise卷积和空洞卷积金字塔,每层具有不同的dilation rate,在参数量不增加的情况下,能够融合多尺度特征,相比于深度可分离卷积,深度可分离空洞卷积金字塔性价比更高。(参考) 6.代码实现Pytorch(参考)
结果展示: 四、分组卷积(Group Convolution)更详细请看笔者的博文: 组卷积和深度可分离卷积_caip12999203000的博客-CSDN博客 1.概念或背景????????分组卷积(Group Convolution)顾名思义,在对特征图进行卷积的时候,首先对特征图分组再卷积。 2.卷积后的尺寸大小转换公式(其中W1为输入矩阵大小,K为卷积核大小,P为向外填充的参数,S为步长,W2为输出的矩阵大小) 3.功能1)减少参数量,分成G组,则该层的参数量减为原来的1/G。 4.各个指标比较(参数量、计算量、感受野)(输入的通道数为M,尺寸为DF x DF ,输出通道数为N, a为膨胀率,卷积核大小为DK? x DK , n为卷积核的个数,忽略偏执b。) 5.分组卷积用途1)分组卷积,最早在AlexNet中出现,由于当时的硬件资源有限,训练AlexNet时卷积操作不能全部放在同一个GPU处理,因此作者把feature maps分给多个GPU分别进行处理,最有把多个GPU的结果进行融合。 2) IGCV1,? ?简单通道的分组,都是只有一个分组,而以IGCV(Interleaved Group Convolutions交替组卷积)系列为代表的模型采用了多个分组卷积结构级联的形式。(参考) 6.代码实现Pytorch(参考)
结果展示:? ???????五、深度可分离卷积?更详细请看笔者的博文: 组卷积和深度可分离卷积_caip12999203000的博客-CSDN博客 ????????在计算资源受限制的移动端设备上,常规的卷积操作由于计算量大,经常难以满足实际运行速度的要求,这时深度可分离卷积(Depthwise Separable Convolution)就派上了用场。深度可分离卷积是由Depthwise(DW)卷积与Pointwise(PW)卷积组成。该结构和常规卷积类似,可用来提取特征,但相比常规卷积,其参数量和运算成本较低,所以在一些轻量级网络中经常用到此结构,如MobileNet、ShuffleNet。 1.逐通道卷积(Depthwise Convolution即DW卷积)????????? Depthwise Convolution的一个卷积核负责一个通道,一个通道只被一个卷积核卷积,这个过程产生的Feature Map通道数和输入的通道数一样。 ?2.逐点卷积(Pointwise Convolution即PW卷积)????????Pointwise Convolution的运算与常规卷积非常相似,它的卷积核大小1x1xM,M为上一层的通道数,所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的Feature map。有几个卷积核就有几个Feature map,卷积核的shape即为:1 x 1 x 输入通道数 x 输出通道数) 3.深度可分离卷积的功能??????? 可以看出运用深度可分离卷积比普通卷积减少了所需要的参数。重要的是深度可分离卷积将以往普通卷积操作同时考虑通道和区域改变成,卷积先只考虑区域,然后再考虑通道。实现了通道和区域的分离。 4.各个指标比较(参数量、计算量、感受野)(输入的通道数为M,尺寸为DF x DF ,输出通道数为N, a为膨胀率,卷积核大小为DK? x DK , n为卷积核的个数,忽略偏执b。) 5.深度可分离卷积用途1)在一些轻量级网络中经常用到此结构,如MobileNet、ShuffleNet、SqueezeNet等 2) Xception,??基 于Inception系列网络结构的基础上,结合depthwise separable convolution, 就是Xception。(参考)? 6.代码实现Pytorch
结果展示:? 六、总结?????????上面是笔者对于前面几个博客关于卷积的总结,分别从概念、背景、原理、参数量、计算量、感受野、各种卷积的优点以及在网络的应用展开讲解。如果您感觉有用的话,请点个👍,谢谢。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:29:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |