习题5-2 证明宽卷积具有交换性
习题5-3 分析卷积核中1*1卷积核的作用
-
升/降维
通过观察上述图像,我们发现卷积核的通道数决定了最后的特征图。所以我们可以通过引用 1 ∗ 1 ∗ M 1*1*M 1∗1∗M的卷积块,把将维度变为M维 -
看成全连接层
其中的 w 1 , w 2 , w 3 , w 4 , w 5 w1,w2,w3,w4,w5 w1,w2,w3,w4,w5可以看作一个是 1 ∗ 1 ∗ 5 1*1*5 1∗1∗5的卷积核。从而进行全连接
3.增加非线性特性
1*1卷积核,可以在保持特征图尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很深。备注:一个卷积核对应卷积后得到一个特征图,不同的卷积权重,卷积以后得到不同的特征图,提取不同的特征。
4.减少计算量
习题5-4 对于一个输入为100×100×256的特征映射组,使用3×3的卷积核,输出为100×100×256的特征映射组的卷积层,求其时间和空间复杂度。如果引入一个1×1的卷积核,先得到100×100×64的特征映射,再进行3×3的卷积,得到100×100×256的特征映射组,求其时间和空间复杂度。
100 × 100 × 256 使用3 × 3的卷积核输出100 × 100 × 256
计算次数: 100 × 100 × 256(图像的像素个数) * 3 × 3 (卷积核)× 256 = 5898240000
空间:100 × 100 × 256
100 × 100 × 256 使用1 × 1的卷积核输出100 × 100 × 64 再使用3 × 3的卷积核输出100 × 100 × 256
计算次数: 100 × 100 × 64 * 1 × 1 × 256 + 100 × 100 × 256 * 3 × 3 × 64 = 1638400000
空间:100 × 100 × 64 + 100 × 100 × 256
说明
计算 W × H × C 使用M × N的卷积核输出W’ × H’ × C’ 计算次数
则显然有 卷积核的维度为C,个数为C’
考虑输出的特征图每一个像素点都是由卷积核进行卷积得到
每个卷积操作计算次数为: M × N × C
故总计算次数 = 特征图像素数 × 每次卷积计算次数 = W’ × H’ × C’ × M × N × C
拓展:
单个卷积层的时间复杂度:
变量解释:
M
M
M是每个卷积核输出特征图的边长。
K
K
K是每个卷积核的边长。
C
i
n
C_{in}
Cin是每个卷积核的通道数。
C
o
u
t
C_{out}
Cout本卷积层具有的卷积核个数。
其中
M
=
(
X
−
K
+
2
∗
P
a
d
d
i
n
g
)
/
S
t
r
i
d
e
+
1
M=(X-K+2*Padding)/Stride+1
M=(X−K+2∗Padding)/Stride+1
整体的时间复杂度
D
D
D神经网络所具有的卷积层数,也即网络的深度。
l
神
经
网
络
得
低
l
个
卷
积
层
l神经网络得低l个卷积层
l神经网络得低l个卷积层
C
l
C_{l}
Cl神经网络第l个卷积层的输出通道数
C
o
u
t
C_{out}
Cout,也即该层的卷积核个数。
空间复杂度
空间复杂度(访存量),严格来讲包括两部分:总参数量 + 各层输出特征图。
**参数量:**模型所有带参数的层的权重参数总量(即模型体积,下式第一个求和表达式)
特征图:模型在实时运行过程中每层所计算出的输出特征图大小(下式第二个求和表达式)
总参数量只与卷积核的尺寸
K
K
K 、通道数
C
C
C 、层数
D
D
D 相关,而与输入数据的大小无关。
输出特征图的空间占用比较容易,就是其空间尺寸
M
2
M^{2}
M2 和通道数
C
C
C 的连乘。
卷积神经网络的复杂度分析
习题5-7 忽略激活函数,分析卷积网络中卷积层的前向计算和反向传播是一种转置关系
选做推导CNN反向传播算法
池化层反向传播
池化层的反向传播比较容易理解,我们以最大池化举例,上图中,池化后的数字6对应于池化前的红色区域,实际上只有红色区域中最大值数字6对池化后的结果有影响,权重为1,而其它的数字对池化后的结果影响都为0。假设池化后数字6的位置 δ \delta δ误差为 ,误差反向传播回去时,红色区域中最大值对应的位置delta误差即等于 ,而其它3个位置对应的 δ \delta δ误差为0。
因此,在卷积神经网络最大池化前向传播时,不仅要记录区域的最大值,同时也要记录下来区域最大值的位置,方便 δ \delta δ误差的反向传播。
而平均池化就更简单了,由于平均池化时,区域中每个值对池化后结果贡献的权重都为区域大小的倒数,所以delta误差反向传播回来时,在区域每个位置的 δ \delta δ误差都为池化后 δ \delta δ误差除以区域的大小。
卷积层反向传播
总结
这次作业中,证明交换性的时候自己一个人总想用公式证明出来,可是到最后发现能力不够,证明不出来,也查阅不到相关资料,最后无奈只能用图解方法,在做第二问的时候,我以为1*1的卷积核并没有什么太大的用处,最后才发现用处大得很,又可以降维,还可以减少计算量,这次作业公式推导真的很麻烦,交的也比较晚了点。
参考
CNN 反向传递
NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP
卷积神经网络(CNN)反向传播算法推导