深度学习中的1x1卷积核理解

在学习UNet网络结构时碰到了1x1卷积块,一开始不太理解,在阅读了一些博客后逐渐明白了,特此感谢:
为什么要分别使用11,33,1*1的卷积核进行降维和升维
一、卷积运算复习
在图像处理中,卷积操作通过在图像的矩阵上滑动卷积核来捕获局部特征。卷积核是一个矩阵,一般维度有1x1,3x3,5x5等。在滑动过程中,卷积核可以看做对原图像局部的加权求和,如下图计算:
在这里插入图片描述
对于原图为4x4矩阵,卷积核大小为3x3,特征图维度为2*2。其中 b 0 = a 0 ∗ w 0 + a 1 ∗ w 1 + a 2 ∗ w 2 + a 3 ∗ w 3 + a 4 ∗ w 4 + a 5 ∗ w 5 + a 6 ∗ w 6 + a 7 ∗ w 7 + a 8 ∗ w 8 b_0=a_0*w_0+a_1*w_1+a_2*w_2+a_3*w_3+a_4*w_4+a_5*w_5+a_6*w_6+a_7*w_7+a_8*w_8 b0=a0w0+a1w1+a2w2+a3w3+a4w4+a5w5+a6w6+a7w7+a8w8,后面以此类推。

这是示例运算,通常原图像存在多个通道,比如RGB三通道等,此时就要求卷积核的通道数与原图像要保持一致,且每一个卷积核对应一个特征图。如果我们想要提取图像的多个特征,就需要多个卷积核,且一个卷积核对应一个特征。举例来说,对于一个6x6x3(WxHxC,C为通道数)的图像来说,卷积核大小为3x3,有4个特征要提取。那么此时卷积核的参数量为3x3x4x3。如下图所示:
在这里插入图片描述
二、1x1卷积核运算
在上面的基础上,如果卷积核大小是1x1呢?可以想象,此时卷积核不会改变原图像的长宽,也就是w和h,但是会改变原图像的通道数,这取决于我们想要提取多少个特征。而这么做的目的,则是改变了原图像的维度。
三、1x1卷积核的作用
采用1x1卷积核主要有几个用处:
1.升维或降维
如果卷积核的维度比原图像高,则是升维,反之为降维。这意味着提取特征数量的变化。
2.跨通道特征聚合
如果输入只有一个通道,此时1x1卷积核并没有特殊之处,但是如果有多个通道,卷积核会将它们聚合起来,将多通道的信息融合在一起,且是线性组合,从而完成了升维或降维功能。
3.增加网络表达能力
由于我们通常在卷积操作后面接非线性激活函数,因此提高了网络的非线性表达能力,这样网络可以做的很深。
4.显著减少参数量
在这里插入图片描述
从上图可以看出,同样是得到161628的输出,采用1x1卷积核能够显著减少参数量,减少过拟合现象的出现。
四、1x1卷积核的实际应用
1x1卷积核的首次提出是在NIN(Network in Network)中,在后面的GoogLeNet以及ResNet中都有应用。此处附上沐神将NiN的链接网络中的网络
在NiN里提出用1x1卷积核来代替全连接层,能够显著减少模型的参数。比如输入一张224x224x3的图像,神经网络最后一层是5x5x512,全连接层为4096x100,那么全连接层会首先将最后一层拉平成5x5x512,再做全连接,此时参数为5x5x512x4096x100。但如果我们采用1x1卷积核就不一样,首先采用5x5卷积核,将其变成1x1x4096,再用1x1x1000维度的卷积核进行运算即可,此时参数量为5x5x512x4096+1000x4096,参数量显著减少了。
下图就是在ResNet网络里用到了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值