深度学习基础:1x1的卷积

1.跨通道的特征整合

比如:输入的特征是16x64x64,其中16是通道数,假如我们想要把16个通道的信息进行融合,最后输出的8个特征,那我们就需要8个\(16 \times 1 \times 1\)的卷积核,然后输出的特征就是\(8 \times 64 \times 64\)。这个8个\(16 \times 1 \times 1\)是将16个通道的每个高宽进行卷积之后再相加的。

2.特征通道的升维和降维

和上面的例子一样,比如说输入的特征是\(16\times64\times64\),输出通道为\(8 \times 64 \times 64\),这个例子相当于降维。然后如果我们输入的通道是\(16 \times 64 \times 64\),这个就是升维。

3.加入非线性。

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

4. 引入非线性

卷积层之后经过激活函数,1* 1的卷积在前一层的学习表示上加了非线性激活,提升网络的非线性;

5. 减少参数

不引入1×1卷积的卷积操作:
image
引入1×1卷积的卷积操作:
image
我们发现引入1*1卷积比不引入少了一个数量级。

6. 1x1的卷积可以代替全连接层

我们以单通道的\(3 \times 3\)的特征图为例子:

1 2 3
4 5 6
7 8 9

然后我们把该特征图开成一维(9个)

1
2
3
4
5
6
7
8
9

image
上面是一个神经元的输出,我们可以发现,全连接层其实就是一个全局的卷积,就是等于:
image
就等于\(1 \times w_1+ 2 \times w_2+3 \times w_3+4 \times w_4+5 \times w_5+6 \times w_6+7 \times w_7+8 \times w_8+9 \times w_9\)
然后我们再来看看\(1 \ times 1\)卷积是怎么做的?
image
然后卷积后的结果为\(1xw+2xw+...+9xw\)。然后如果输出是4类别的化,我们可以用4个\(1 \times 1\)的卷积。我们发现,其实也是差不多的,只是卷积的w是共享参数的。
对于多维的:
下面是一个[2,2,2]的特征矩阵,通道数为2。全连接之后:
image
下面用4个\(1 \times 1\)的矩阵进行卷积:
image
我们发现其实差不多的。
但是全连接层会破坏图像的空间结构,用\(1\times1\)卷积层的好处就是不会破坏图形的空间结构,并且可以起到升维、降维的作用。

总结:

  • 把卷积作用的区域扩大为整个输入,那就变成全连接了,所以我们只需要把卷积核变成跟输入的一个map的大小一样就可以了,这样的话就相当于使得卷积跟全连接层的参数一样多。卷积核的个数*卷积核的大小=全连接的权重矩阵

  • 用1*1卷积层可以起到升维、降维的作用

  • 全连接层会破坏图像的空间结构,而1*1卷积层不会破坏图像的空间结构。

  • 全连通就相当于每个像素点都一样对待,但是卷积是将一个区域单独对待,所以会保留图像局部特征

posted @ 2023-08-18 09:22  lipu123  阅读(629)  评论(0)    收藏  举报