1、1 x 1 卷积核的作用

  • 增加非线性:1x1 卷积与激活函数结合使用,对多个输入通道进行加权求和,产生新的通道的非线性组合,增强网络的表示能力。

  • 通道数的压缩与扩展:1x1 卷积核可以在不改变空间分辨率的情况下,进行特征图通道数的变换,可以压缩通道数减小计算量和参数量,也可以扩展通道数增加网络的表达能力。

  • 实现跨通道信息交互:1x1 卷积核通过将输入特征图的每个激活值的不同通道进行线性加权,实现了通道间的线性变换,将不同通道的特征信息进行混合,进而生成新的特征图。

2、卷积神经网络的参数量和感受野

对于AlexNet,要学习的参数共有多少个?

卷积神经网络中池化层没有参数,参数来源于卷积层的卷积核:

parameters =((K×K)×Cin)×Cout+Coutparameters\ =((K\times K)\times C_{in})\times C_{out}+C_{out}parameters =((K×K)×Cin)×Cout+Cout
其中K×KK\times KK×K是卷积核大小,CinC_{in}Cin是输入通道数,CoutC_{out}Cout是输出通道数。

对于AlexNet的卷积层:

  • CONV1:卷积核大小为11x11,输入通道数为3,输出通道数为96:
    $ {parameters}_{conv1}\ =\ 11\times11\times3\times96+96=34944 $

  • CONV2:卷积核大小为5x5,输入通道数为96,输出通道数为256:
    $ {parameters}_{conv2}\ =\ 5\times5\times96\times256+256=614656 $

  • CONV3:卷积核大小为3x3,输入通道数为256,输出通道数为384:
    parametersconv3= 3×3×256×384+384=885120{parameters}_{conv3}=\ 3\times3\times256\times384+384=885120parametersconv3= 3×3×256×384+384=885120

  • CONV4:卷积核大小为3x3,输入通道数为384,输出通道数为384:
    parametersconv4 = 3×3×384×384+384=1327488{parameters}_{conv4}\ =\ 3\times3\times384\times384+384=1327488parametersconv4 = 3×3×384×384+384=1327488

  • CONV5:卷积核大小为3x3,输入通道数为384,输出通道数为256:
    parametersconv5 = 3×3×384×256+256=884992{parameters}_{conv5}\ =\ 3\times3\times384\times256+256=884992parametersconv5 = 3×3×384×256+256=884992

对于全连接层:

  • FC1:parametersFC1= 6×6×256×4096+4096=37752832{parameters}_{FC1}=\ 6\times6\times256\times4096+4096=37752832parametersFC1= 6×6×256×4096+4096=37752832

  • FC2:parametersFC2= 4069×4096+4096=16781312{parameters}_{FC2}=\ 4069\times4096+4096=16781312parametersFC2= 4069×4096+4096=16781312

  • FC3:parametersFC3 = 4096×1000+1000=4097000{parameters}_{FC3}\ =\ 4096\times1000+1000=4097000parametersFC3 = 4096×1000+1000=4097000

总参数量为:
parameters=34944+614656+885120+1327488+884992+37752832+16781312+4097000=62378344 parameters=34944+614656+885120+1327488+884992+37752832+16781312+4097000=62378344 parameters=34944+614656+885120+1327488+884992+37752832+16781312+4097000=62378344

CONV3中任何一个特征元素,对应于在 Input 中多大区域中提取的信息(即在输入图中的感受野是多少)

卷积层和池化层都会影响感受野,从下往上计算每一层感受野的公式如下:
RFi=(RFi+1−1)×Si+ki {RF}_i=\left({RF}_{i+1}-1\right)\times S_i+k_i RFi=(RFi+11)×Si+ki
其中, RFi{RF}_iRFi 表示第i层的感受野, RFi+1{RF}_{i+1}RFi+1 表示第i+1层的感受野, kik_iki 表示卷积核的大小,SiS_iSi 表示第i层卷积的步长。依据公式从CONV3{CONV}_3CONV3 开始,逐层推导感受野的大小。

对于 ${CONV}_3 $,感受野大小为卷积核大小:
RF5=3{RF}_5=3RF5=3

对于 MAXPOOL2{\rm MAXPOOL}_2MAXPOOL2,池化操作大小为 3×33\times33×3,步长为2,感受野变为:
${RF}_4=\left({RF}_5-1\right)\times2+3=7 $

对于CONV2{CONV}_2CONV2,卷积核大小为5×55\times55×5,步长为1,感受野变为:
RF3=(RF4−1)×1+5=11{RF}_3=\left({RF}_4-1\right)\times1+5=11RF3=(RF41)×1+5=11

对于MAXPOOL1{\rm MAXPOOL}_1MAXPOOL1:池化操作大小为3×33\times33×3,步长为2,感受野变为:
RF2=(RF3−1)×2+3=23{RF}_2=\left({RF}_3-1\right)\times2+3=23RF2=(RF31)×2+3=23

对于CONV1{CONV}_1CONV1:卷积核大小为11×1111\times1111×11,步长为4,感受野变为:
RF1=(RF2−1)×4+11=99{RF}_1=\left({RF}_2-1\right)\times4+11=99RF1=(RF21)×4+11=99

因此,CONV3{CONV}_3CONV3 层的感受野为 99×9999\times9999×99,每个特征元素在输入图像上所对应的区域大小是99×9999\times9999×99

3、卷积转化为仿射变换

对于一个二维卷积,输入为 3×3,卷积核大小为 2×2,试将卷积操作重写为仿射变换的形式。

1)定义卷积操作:假设使用无填充的二位卷积操作,步长为 1,假设输入为一个 3×3 的矩阵XXX,卷积核为一个 2×2 的矩阵WWW。卷积操作可以表示为:

Yij=∑p=12∑q=12wpqXi+p−1,j+q−1 Y_{ij}=\sum_{p=1}^{2}\sum_{q=1}^{2}{w_{pq}X_{i+p-1,j+q-1}} Yij=p=12q=12wpqXi+p1,j+q1

YijY_{ij}Yij表示输出矩阵中的第 iii 行第 jjj 列元素,wp,qw_{p,q}wp,q 是卷积核的元素,Xi+p−1,j+q−1X_{i+p-1,j+q-1}Xi+p1,j+q1是输入矩阵中对应位置的元素。

2)提取滑动窗口并展平:对于一个特定的输出位置(i,j)(i,j)(i,j),我们需要从输入矩阵中提取一个大小为 2×2 的滑动窗口XijX_{ij}Xij,并展平为一维列向量xijx_{ij}xij

xij=flatten(Xij)=[xi,j,xi,j+1,xi+1,j,xi+1,j+1]T \mathbf{x}_{ij} =flatten(X_{ij})= [x_{i,j}, x_{i,j+1}, x_{i+1,j}, x_{i+1,j+1}]^T xij=flatten(Xij)=[xi,j,xi,j+1,xi+1,j,xi+1,j+1]T

3)展平卷积核:将 2×2 的卷积核展平为一维列向量:

w=flatten(Wij)=[w1,1,w1,2,w2,1,w2,2]T \mathbf{w} = flatten(W_{ij})= [w_{1,1}, w_{1,2}, w_{2,1}, w_{2,2}]^T w=flatten(Wij)=[w1,1,w1,2,w2,1,w2,2]T

4)使用向量形式表示卷积操作:对于每个输出位置 ( (i,j) ),卷积操作会通过将输入子矩阵和卷积核之间进行逐元素的乘积,并求和来计算输出,表示为:

yij=wTxij+b y_{ij}=\mathbf{w}^T\mathbf{x}_{\mathbf{ij}}+b yij=wTxij+b

其中 bbb 是偏置项。

5)构建仿射变换形式:由上述推导可以发现,卷积操作可以表示为一个仿射变换,其中每个输出位置的计算通过以下矩阵运算得到:
y=Wx+b \mathbf{y}=\mathbf{Wx}+\mathbf{b} y=Wx+b

x∈R3×3\mathbf{x}\in R^{3\times3}xR3×3是输入矩阵X展平得到的列向量,表示为:
x=[x11x12x13x21x22x23x31x32x33] \mathbf{x}=\left[\begin{matrix}x_{11}\\x_{12}\\x_{13}\\x_{21}\\x_{22}\\x_{23}\\x_{31}\\x_{32}\\x_{33}\\\end{matrix}\right] x= x11x12x13x21x22x23x31x32x33
b∈R2×2\mathbf{b}\in R^{2\times2}bR2×2是偏置向量,每个元素表示输出矩阵中每个元素的偏置,表示为:
b=[b1b2b3b4] \mathbf{b}=\left[\begin{matrix}b_1\\b_2\\b_3\\b_4\\\end{matrix}\right] b= b1b2b3b4

W∈R4×9\mathbf{W}\in R^{4\times9}WR4×9是一个稀疏矩阵,具体表示为:
W=[w11w120w21w2200000w11w110w21w22000000w11w120w21w2200000w11w120w21w22] \mathbf{W}=\left[\begin{matrix}w_{11}&w_{12}&0&w_{21}&w_{22}&0&0&0&0\\0&w_{11}&w_{11}&0&w_{21}&w_{22}&0&0&0\\0&0&0&w_{11}&w_{12}&0&w_{21}&w_{22}&0\\0&0&0&0&w_{11}&w_{12}&0&w_{21}&w_{22}\\\end{matrix}\right] W= w11000w12w11000w1100w210w110w22w21w12w110w220w1200w21000w22w21000w22
仿射变换的计算结果y∈R2×2\mathbf{y}\in R^{2\times2}yR2×2是输出矩阵y\mathbf{y}y展平后的列向量:

y=[w11x11+w12x12+w21x21+w22x22+b1w11x12+w12x13+w21x22+w22x23+b2w11x21+w12x22+w21x31+w22x32+b3w11x22+w12x33+w21x32+w22x33+b4] \mathbf{y}=\left[\begin{matrix}{w_{11}x_{11}+w_{12}x_{12}+w_{21}x_{21}+w_{22}x_{22}+b}_1\\{w_{11}x_{12}+w_{12}x_{13}+w_{21}x_{22}+w_{22}x_{23}+b}_2\\w_{11}x_{21}+w_{12}x_{22}+w_{21}x_{31}+w_{22}x_{32}+b_3\\w_{11}x_{22}+w_{12}x_{33}+w_{21}x_{32}+w_{22}x_{33}+b_4\\\end{matrix}\right] y= w11x11+w12x12+w21x21+w22x22+b1w11x12+w12x13+w21x22+w22x23+b2w11x21+w12x22+w21x31+w22x32+b3w11x22+w12x33+w21x32+w22x33+b4

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐