精华内容
下载资源
问答
  • 1*1卷积核作用和大卷积核小卷积核的各自优缺点介绍。

    作者:RayChiu_Labloy
    版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处


    1*1卷积核的作用

    • 升维降维
    • 增加激活函数提升模型语义能力
    • 减少参数量
    • 通道间数据整合(也是降维升维过程中带来的好处,输入层和1*1卷积核连接类似全连接)

    大卷积核和小卷积核比较

            首先只有在1*1卷积核之上大小的卷积核才有感受野的作用。

            卷积核大了感受野大,可以审视更为宽广区域的feature Map,所获得的全局特征越好。虽然很多情况下可以由几个小的卷积核代替(例如一个7*7的卷积核可以由3个3*3的卷积核代替),但是虽说网络增加了深度有很多优点,但是也会增加梯度消失的风险。

            反过来说连续的小卷积核代替大卷积核是现在比较常用的做法,优点很多,比如深度增加带来的非线性激活函数多了,语义表达强了,计算量也会变少,参数量也同样变少,梯度消失的问题因为BN等技术出现得到了很好的优化。另外深度增加语义表达能力增加了,在一些情况下还容易出现过拟合,有时候还不如浅层模型效果好,防止过拟合的方法也出现了很多,也很好解决了这些问题,参考:详细讲解深层神经网络DNN_RayChiu757374816的博客-CSDN博客_dnn神经网络

    【如果对您有帮助,交个朋友给个一键三连吧,您的肯定是我博客高质量维护的动力!!!】 

    展开全文
  • CNN中1*1卷积核的意义信道压缩 信道压缩 一个32* 6* 6的图片,32通道,6维矩阵图片 当用32* 1* 1的的卷积核提取特征时,得到的是一个6*6的图片 卷积运算中输出的通道数与卷积核的数量有关,但是计算过程中,图片的...

    CNN中1*1卷积核的意义


    信道压缩

    • 一个32* 6* 6的图片,32通道,6维矩阵图片
    • 当用32* 1* 1的的卷积核提取特征时,得到的是一个6*6的图片
    • 卷积运算中输出的通道数与卷积核的数量有关,但是计算过程中,图片的通道数要和卷积核的通道数相同

    此时,通过1维卷积核将原来图片在通道维度上进行压缩,即将通道信息进行融合

    1* 1也可以理解为一个全连接网络,分别作用所有通道上面

    总结:

    总结一下,1x1的卷积核可以进行降维或者升维,也就是通过控制卷积核(通道数)实现,这个可以帮助减少模型参数,也可以对不同特征进行尺寸的归一化;同时也可以用于不同channel上特征的融合。一个trick就是在降维的时候考虑结合传统的降维方式,如PCA的特征向量实现,这样效果也可以得到保证。

    import torch
    
    a = torch.randn(1, 2, 32, 32)  
    conv3x1 = torch.nn.Conv2d(2, 2, (3, 1), padding=(1, 0))  # 3x1卷积
    conv1x3 = torch.nn.Conv2d(2, 2, (1, 3), padding=(0, 1))  # 1x3卷积
    
    out = conv3x1(a)
    print(out.shape)  
    out = conv1x3(out)
    print(out.shape)
    
    展开全文
  • 滤波器filter个数,卷积层中的权值称为滤波器 filter或 卷积核,使用一个 filter对输入进行卷积得到一个特征图 feature map,使用多个滤波器同时对输入进行卷积得到多个特征图。 感受野 (receptive field) F,滤波器...

    feature map尺寸是指 W,H上共享权值的 sliding window, feature map 的数量是 channels


    卷积层:

    1. 滤波器filter 个数,卷积层中的权值称为滤波器 filter 或 卷积核,使用一个 filter 对输入进行卷积得到一个 特征图 feature map, 使用多个滤波器同时对输入进行卷积得到多个特征图。
    2. 感受野 (receptive field) F, 滤波器空间局部连接的大小, 3*3, 5*5
    3. 零填补 (zero padding) P, 卷积过程中图像边缘信息逐渐丢失,在卷积前可以在图像上下左右填补一些0,使我们可以控制输出特征图的大小
    4. 步幅 (stride) S, 滤波器在输入每移动S个位置计算一个 输出神经元

    特征:

    1. 局部连接:每个输出通过权值 weight和所有输入相连。在卷积层中,每个输出神经元在通道方向保持全连接,在空间方向上只和一小部分输入神经元相连
    2. 参数共享:如果一组权值可以在图像中某个区域提取出有效的表示,那么它们也能在图像的另外区域中提取出有效的表示。如果一个模式(pattern)出现在图像中的某个区域,那么它们也可以出现在图像中的其他任何区域。卷积层不同空间位置的神经元共享权值,用于发现图像中不同空间位置的模式。共享参数是深度学习一个重要的思想,其在减少网络参数的同时仍然能保持很高的网络容量(capacity)卷积层在空间方向共享参数,而循环神经网络(recurrent neural networks)在时间方向共享

    多 channel 输入输出

    填充与步幅


     池化层

    池化pooling为了缓解卷积层对位置的过度敏感性,池化函数通过使用某一位置的相邻输出的总体估计特征来代替网络在这个位置的输出。根据特征图上的局部统计信息进行下采样,在保留有用信息的同时减少特征图的大小。在池化层中参数不发生变化

    1. 最大池化 max pooling 给出相邻矩形区域内最大值作为输出
    2. 平均池化 average pooling 给出相邻矩形区域内的均值作为输出

     作用:

    1. 增加特征平移不变型,池化可以提高网络对微笑位移的容忍能力
    2. 减小特征图大小, 池化层对局部区域进行下采样,使下一层需要的参数和计算量减小,并降低过拟合风险
    3. 最大池化可以带来非线性,所以更常用

     在处理多通道输入数据时,池化层对每个输入通道分别池化,而不是像卷积层那样将各通道的输入按通道相加。这意味着池化层的输出通道数与输入通道数相等

     


    1*1 卷积核

    条件:卷积的输入输出必须是长方体(立体),1*1卷积核就是对每个像素点在不同channel上进行线性组合(信息整合),同时保留了图片原有的平面结构,调控 depth, 从而完成升维或者降维功能

    作用:

    1. 实现信息的跨 channel的整合和交互(不同 channel 维度上线性组合)
    2. 具有升维,降维(就是改变channels数量),减小网络参数,此维度就是卷积核通道数(厚度),仅改变 channels维度的大小,而不改变图片的宽和高
    3. 在保证 feature map 尺寸不变的情况下(不损失分辨率)的前提下大幅度增加非线性特性,即可以把网络做deep,也可以提升网络表达能力

     这里 416是输出层 feature map 的数量  64 + 128 + 32 + 192 = 416

    采用 1*1 卷积层,输出层 feature map 数量 64 + 128 + 32 + 32 = 256 

     

    在CNN里的卷积大都是多通道的feature map和多通道的卷积核之间的操作(输入的多通道的feature map和一组卷积核做卷积求和得到一个输出的feature map),如果使用1x1的卷积核,这个操作实现的就是多个feature map的线性组合,可以实现feature map在通道个数上的变化。

    一个filter对应卷积后得到一个feature map,不同的filter(不同的weight和bias),卷积以后得到不同的feature map,提取不同的特征,得到对应的specialized neuro。

    展开全文
  • 来自 | 知乎https://www.zhihu.com/question/56024942编辑 | AI有道本文仅作学术分享,若侵权,请联系后台删文处理卷积神经网络中用1*1 卷积有...

    来自 | 知乎 

    https://www.zhihu.com/question/56024942

    编辑 | AI有道 

    本文仅作学术分享,若侵权,请联系后台删文处理

    卷积神经网络中用1*1 卷积有什么作用或者好处呢?为什么非要加个1*1 呢,那不就是简单的线性变换吗??

    作者:东东
    https://www.zhihu.com/question/56024942/answer/154291405
    来源:知乎

    1*1卷积过滤器 和正常的过滤器一样,唯一不同的是它的大小是1*1,没有考虑在前一层局部信息之间的关系。最早出现在 Network In Network的论文中 ,使用1*1卷积是想加深加宽网络结构 ,在Inception网络( Going Deeper with Convolutions )中用来降维,如下图:

    由于3*3卷积或者5*5卷积在几百个filter的卷积层上做卷积操作时相当耗时,所以1*1卷积在3*3卷积或者5*5卷积计算之前先降低维度。

    那么,1*1卷积的主要作用有以下几点:

    1、降维( dimension reductionality )。比如,一张500 * 500且厚度depth为100 的图片在20个filter上做1*1的卷积,那么结果的大小为500*500*20。

    2、加入非线性。卷积层之后经过激励层,1*1的卷积在前一层的学习表示上添加了非线性激励( non-linear activation ),提升网络的表达能力;

    作者:zhwhong
    https://www.zhihu.com/question/56024942/answer/154846007
    来源:知乎

    可以实现:

    1. 实现跨通道的交互和信息整合

    1×1的卷积层(可能)引起人们的重视是在NIN的结构中,论文中林敏师兄的想法是利用MLP代替传统的线性卷积核,从而提高网络的表达能力。文中同时利用了跨通道pooling的角度解释,认为文中提出的MLP其实等价于在传统卷积核后面接cccp层,从而实现多个feature map的线性组合,实现跨通道的信息整合。而cccp层是等价于1×1卷积的,因此细看NIN的caffe实现,就是在每个传统卷积层后面接了两个cccp层(其实就是接了两个1×1的卷积层)。

    2. 进行卷积核通道数的降维和升维,减少网络参数

    进行降维和升维引起人们重视的(可能)是在GoogLeNet里。对于每一个Inception模块(如下图),原始模块是左图,右图中是加入了1×1卷积进行降维的。虽然左图的卷积核都比较小,但是当输入和输出的通道数很大时,乘起来也会使得卷积核参数变的很大,而右图加入1×1卷积后可以降低输入的通道数,卷积核参数、运算复杂度也就跟着降下来了。以GoogLeNet的3a模块为例,输入的feature map是28×28×192,3a模块中1×1卷积通道为64,3×3卷积通道为128,5×5卷积通道为32,如果是左图结构,那么卷积核参数为1×1×192×64+3×3×192×128+5×5×192×32,而右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),参数大约减少到原来的三分之一。同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量,左图pooling后feature map是不变的,再加卷积层得到的feature map,会使输出的feature map扩大到416,如果每个模块都这样,网络的输出会越来越大。而右图在pooling后面加了通道为32的1×1卷积,使得输出的feature map数降到了256。GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层)。

    最近大热的MSRA的ResNet同样也利用了1×1卷积,并且是在3×3卷积层的前后都使用了,不仅进行了降维,还进行了升维,使得卷积层的输入和输出的通道数都减小,参数数量进一步减少,如下图的结构。(不然真不敢想象152层的网络要怎么跑起来TAT)

    作者:康乐
    https://www.zhihu.com/question/56024942/answer/369745892
    来源:知乎

    1、降维(减少参数)

    例子1 : GoogleNet中的3a模块

    输入的feature map是28×28×192

    1×1卷积通道为64

    3×3卷积通道为128

    5×5卷积通道为32

    左图卷积核参数:192 × (1×1×64) +192 × (3×3×128) + 192 × (5×5×32) = 387072

    右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了:

    192 × (1×1×64) +(192×1×1×96+ 96 × 3×3×128)+(192×1×1×16+16×5×5×32)= 157184

    同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量(feature map尺寸指W、H是共享权值的sliding window,feature map 的数量就是channels)

    左图feature map数量:64 + 128 + 32 + 192(pooling后feature map不变) = 416 (如果每个模块都这样,网络的输出会越来越大)

    右图feature map数量:64 + 128 + 32 + 32(pooling后面加了通道为32的1×1卷积) = 256

    GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层)

    例子2:ResNet中的残差模块

    假设上一层的feature map是w*h*256,并且最后要输出的是256个feature map

    左侧操作数:w*h*256*3*3*256 =589824*w*h

    右侧操作数:w*h*256*1*1*64 + w*h*64*3*3*64 +w*h*64*1*1*256 = 69632*w*h,,左侧参数大概是右侧的8.5倍。(实现降维,减少参数)

    2、升维(用最少的参数拓宽网络channal)

    例子:上一个例子中,不仅在输入处有一个1*1卷积核,在输出处也有一个卷积核,3*3,64的卷积核的channel是64,只需添加一个1*1,256的卷积核,只用64*256个参数就能把网络channel从64拓宽四倍到256。

    3、跨通道信息交互(channal 的变换)

    例子:使用1*1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3*3,64channels的卷积核后面添加一个1*1,28channels的卷积核,就变成了3*3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。

    注意:只是在channel维度上做线性组合,W和H上是共享权值的sliding window

    4、增加非线性特性

    1*1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep。

    备注:一个filter对应卷积后得到一个feature map,不同的filter(不同的weight和bias),卷积以后得到不同的feature map,提取不同的特征,得到对应的specialized neuro。

    四、从fully-connected layers的角度来理解1*1卷积核

    将其看成全连接层

    左边6个神经元,分别是a1—a6,通过全连接之后变成5个,分别是b1—b5

    左边6个神经元相当于输入特征里面的channels:6

    右边5个神经元相当于1*1卷积之后的新的特征channels:5

    左边 W*H*6 经过 1*1*5的卷积核就能实现全连接

    In Convolutional Nets, there is no such thing as “fully-connected layers”. There are only convolution layers with 1x1 convolution kernels and a full connection table– Yann LeCun

    作者:陈运锦
    https://www.zhihu.com/question/56024942/answer/195274297
    来源:知乎

    前面的回答讲了许多1*1卷积核好处之类的,但是我认为没有切中题主想问的。题主想问的其实是,1*1的卷积不就是多个feature channels之间的线性叠加吗,为什要说成是什么1*1的卷积这种貌似有特殊牛逼功能的概念?

    题主你想的是对的,1*1的卷积就是多个feature channels线性叠加,nothing more!只不过这个组合系数恰好可以看成是一个1*1的卷积。这种表示的好处是,完全可以回到模型中其他常见N*N的框架下,不用定义新的层。

    公众号:AI蜗牛车
    
    保持谦逊、保持自律、保持进步
    
    
    
    个人微信
    备注:昵称+学校/公司+方向
    如果没有备注不拉群!
    拉你进AI蜗牛车交流群
    
    
    
    
    展开全文
  • 卷积神经网络中用1*1 卷积有什么作用或者好处呢?为什么非要加个1*1 呢,那不就是简单的线性变换吗?...最早出现在 Network In Network的论文中 ,使用1*1卷积是想加深加宽网络结构 ,在Inception网络( Going Deeper .
  • 最基本的卷积操作是把卷积核在输入中移动(扫一遍),获得输出。 维度: 一维卷积和二维卷积的维度是指,输入数据的维度,比如一维的只有长度(如文本,第一个单词第二个单词),二维的有长宽(如图像,横纵分布...
  • 1*1卷积核作用

    2021-07-07 17:43:25
    1. 相当于全连接层,但是有激活函数,增加了非线性,使得表达复杂特征 2. 可以放缩通道数,达到pooling层无法达到的效果 3. 用在深度卷积可分离网络中,可以减少参数
  • 接下来介绍一下使用 1x1卷积核 有哪些作用。 二、1x1卷积核作用 1、降维/升维 1x1卷积核可以通过控制卷积核数量实现降维或升维。 卷积层流程图 从卷积层流程图中可以清楚的看到 卷积后的特征图通道数与卷积核的...
  • 深入理解1*1卷积作用

    2020-12-27 12:05:47
    在实际操作中, 对于1*1卷积操作, 我们可以通过改变输出的out channel 来使得输出维度的变化,也就是降维和升维, 例如 112 * 112 * 3 经过一个一维卷积 当我们的out channel 设置为32时候, 输出为112 * 112 * ...
  • 卷积神经 网络的开源框架中,一般每层的数据和权重都使用四维的张量的表示。一个四维张量的形状是(N*C*H*W)或(N*H*W*C),其中N是批处理的大小,因为一般训练模型都是采用批量数据;C是特征通道数目,H*W是特征...
  • (实现降维,减少参数) 2、升维(用最少的参数拓宽网络channal) 例子:上一个例子中,不仅在输入处有一个1*1卷积核,在输出处也有一个卷积核,3*3,64的卷积核的channel是64,只需添加一个1*1,256的卷积核,只用...
  • 1卷积核作用

    2021-03-11 14:34:50
    它具有和其它卷积核类似的作用,以下将详细列举。   关键词:1×1卷积 一、实现跨通道的信息交互和整合:   如何理解跨通道的信息交互和整合呢?首先还得从三维卷积的计算开始。   如图所示,蓝色部分是一...
  • 卷积神经网络中1*1卷积作用

    千次阅读 2021-11-23 19:32:49
    卷积核又称filter,过滤器。...指定卷积核时,只需要指定长宽两个参数,其通道数会默认与当前作用图像的通道数相同。 1*1卷积是大小为1*1的滤波器做卷积操作,不同于2*2、3*3等filter,没有考虑在前一特...
  • 1*1卷积作用

    千次阅读 2021-12-01 19:24:50
    1*1卷积作用
  • 被问到了1*1卷积核的问题,记录关于它的理解。 1×1卷积是指多个feature channels之间的线性叠加,只不过这个系数可以看成是1*1的卷积。 这种表示的好处是,完全可以回到模型中其他常见N×N的框架下,不用定义新的...
  • 卷积运算相当于图形处理中的“滤波器运算”。卷积在图像处理领域,一个卷积核相当于一个特征滤波器,提取一个特征。
  • 作用(降维、升维、跨通道交互、增加非线性) part IV :从fully-connected layers的角度理解 一、来源:[1312.4400] Network In Network (如果1×1卷积核接在普通的卷积层后面,配合激活函数,即可实现network in ...
  • 在卷积神经网络中,卷积操作是至关重要的缓解,可以根据问题调整卷积核的大小,那么1*1卷积核有没有它是实际作用呢? 答案:答案显而易见,而且1×1卷积核在一些网络模型中起着至关重要的作用,例如inception...
  • 3.1.1节“使用单层神经网络的二元分类器”的图3.3中 tfnn.relu(ReLU)会把负数值置换为0,减去0.2再代入ReLU的作用是为了把比0.2小的值强制置换为0,   第9~10行在应用卷积核运算后的结果的基础上再添加池化层处理的...
  • 理解1x1卷积核一.1x1卷积核的提出二.1x1卷积核的应用2.1.多通道数据中1x1卷积的作用 一.1x1卷积核的提出 1x1卷积核的使用可以见《Network in network》这篇论文,这是一篇非常经典并且影响深远的论文,之后的Google...
  • 卷积和反卷积核计算公式

    千次阅读 2021-03-05 01:28:12
    1. 卷积 输出: out_size=in_size+2×padding−kernel_sizestride+1 out\_size = \frac{in\_size+2\times padding - kernel\_size}{stride} + 1 out_size=stridein_size+2×padding−kernel_size​+1 如果想让输入和...
  • 1x1卷积作用应用4. 卷积算法5. 可分离卷积空间可分离卷积深度可分离卷积 1. 2D卷积 卷积的目的是从输入中提取有用的特征。在图像处理中,卷积可以选择多种不同的滤波器。每种类型的过滤器都有助于从输入图像中提取...
  • 卷积核的基本概况

    2021-08-27 14:04:44
    在机器学习篇章中,我们简单介绍了卷积核,今天,我们借助知乎的一篇文章,梳理一下对卷积核一些基本情况。传送门:卷积神经网络(CNN)什么是卷积核在数学上,卷积核的标准定义是两个函数在反转和移...
  • 1x1卷积核虽然不能增加特征的感受野,但仍然常被采用,本文简单介绍它的几点作用1x1卷积核作用和使用场景 降低通道数。模型的计算计算量和复杂度与每一层的通道数息息相关,如果想要降低某一层的通道数同时又...
  • 两个3*3卷积核代替5*5卷积核 5*5卷积的特征图尺寸: kernel=5*5,stride=1,padding=0 M=(64-5+2*0)/1+1=60 计算量:5*5*channels=25*channels 2个3*3卷积的特征图尺寸(这里指进行两次3*3卷积); kernel=3*...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,846
精华内容 13,938
关键字:

1*1卷积核的作用