【深度学习】1*1卷积核

##1×1的卷积核

卷积核在CNN中经常被用到,一般常见的是3×3的或者5×5的,见下图,这里不多赘述

那么1×1的卷积核,就像上面那样。
一般1×1的卷积核本质上并没有对图像做什么聚合操作,以为就是同一个ww去乘以原图像上的每一个像素点,相当于做了一个scaling
1×1卷积核最初是在Network in Network这个网络结构中提出来的。它用了比AlexNet更少的参数,达到了跟其一样的效果。

1×1卷积核的作用

那么1×1卷积核有什么作用呢,如果当前层和下一层都只有一个通道那么1×1卷积核确实没什么作用,但是如果它们分别为m层和n层的话,1×1卷积核可以起到一个跨通道聚合的作用,所以进一步可以起到降维(或者升维)的作用,起到减少参数的目的。
比如当前层为$ xxm即图像大小为即图像大小为xx,特征层数为,特征层数为mm,然后如果将其通过1×1的卷积核,特征层数为,然后如果将其通过1×1的卷积核,特征层数为1×1nn,那么只要,那么只要nm这样就能起到降维的目的,减少之后步骤的运算量(当然这里不太严谨,需要考虑1×1卷积核本身的参数个数为这样就能起到降维的目的,减少之后步骤的运算量(当然这里不太严谨,需要考虑1×1卷积核本身的参数个数为1×1m×n$个)。换句话说,如果使用1x1的卷积核,这个操作实现的就是多个feature map的线性组合,可以实现feature map在通道个数上的变化。 而因为卷积操作本身就可以做到各个通道的重新聚合的作用,所以1×1的卷积核也能达到这个效果。

用卷积核实现全连接层

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

LeCun经常说一个全连接层的网络可以用1×1卷积核去替换,虽然这个说法被批了(见参考文献1)
但是1×1卷积核确实可以实现全连接层 具体的操作是,输入是224x224x3 的图像,假设经过变换之后最后一层是[7x7x512]的,那么传统的方法应该将其展平成为一个7x7x512长度的一层,然后做全连接层,假设全连接层为4096×1000层的(假设有1000个分类结果)。 那么用1×1卷积核怎么做呢,因为1×1卷积核相当于在不同channel之间做线性变换,所以:

  1. 先选择7×7的卷积核,输出层特征层数为4096层,这样得到一个[1×1×4096]层的
  2. 然后再选择用1×1卷积核,输出层数为1000层,这样得到一个[1×1×1000]层这样就搞定了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值