深度学习基础: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卷积的卷积操作:
引入1×1卷积的卷积操作:
我们发现引入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 |
上面是一个神经元的输出,我们可以发现,全连接层其实就是一个全局的卷积,就是等于:
就等于\(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\)卷积是怎么做的?
然后卷积后的结果为\(1xw+2xw+...+9xw\)。然后如果输出是4类别的化,我们可以用4个\(1 \times 1\)的卷积。我们发现,其实也是差不多的,只是卷积的w是共享参数的。
对于多维的:
下面是一个[2,2,2]的特征矩阵,通道数为2。全连接之后:
下面用4个\(1 \times 1\)的矩阵进行卷积:
我们发现其实差不多的。
但是全连接层会破坏图像的空间结构,用\(1\times1\)卷积层的好处就是不会破坏图形的空间结构,并且可以起到升维、降维的作用。
总结:
-
把卷积作用的区域扩大为整个输入,那就变成全连接了,所以我们只需要把卷积核变成跟输入的一个map的大小一样就可以了,这样的话就相当于使得卷积跟全连接层的参数一样多。卷积核的个数*卷积核的大小=全连接的权重矩阵
-
用1*1卷积层可以起到升维、降维的作用
-
全连接层会破坏图像的空间结构,而1*1卷积层不会破坏图像的空间结构。
-
全连通就相当于每个像素点都一样对待,但是卷积是将一个区域单独对待,所以会保留图像局部特征