NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)

NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第1张图片

    • 习题5-2 证明宽卷积具有交换性
    • 习题5-3 分析卷积核中1*1卷积核的作用
    • 习题5-4 对于一个输入为100×100×256的特征映射组,使用3×3的卷积核,输出为100×100×256的特征映射组的卷积层,求其时间和空间复杂度。如果引入一个1×1的卷积核,先得到100×100×64的特征映射,再进行3×3的卷积,得到100×100×256的特征映射组,求其时间和空间复杂度。
      • 单个卷积层的时间复杂度:
      • 整体的时间复杂度
      • 空间复杂度
    • 习题5-7 忽略激活函数,分析卷积网络中卷积层的前向计算和反向传播是一种转置关系
    • 选做推导CNN反向传播算法
      • 池化层反向传播
      • 卷积层反向传播
    • 总结
    • 参考

习题5-2 证明宽卷积具有交换性

NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第2张图片

习题5-3 分析卷积核中1*1卷积核的作用

  1. 升/降维
    NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第3张图片
    通过观察上述图像,我们发现卷积核的通道数决定了最后的特征图。所以我们可以通过引用 1 ∗ 1 ∗ M 1*1*M 11M的卷积块,把将维度变为M维

  2. 看成全连接层
    NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第4张图片
    其中的 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 115的卷积核。从而进行全连接
    3.增加非线性特性
    1*1卷积核,可以在保持特征图尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很深。备注:一个卷积核对应卷积后得到一个特征图,不同的卷积权重,卷积以后得到不同的特征图,提取不同的特征。
    4.减少计算量
    NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第5张图片

习题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

拓展:

NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第6张图片

单个卷积层的时间复杂度:

在这里插入图片描述
变量解释:
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=(XK+2Padding)/Stride+1

整体的时间复杂度

在这里插入图片描述
D D D神经网络所具有的卷积层数,也即网络的深度。
l 神 经 网 络 得 低 l 个 卷 积 层 l神经网络得低l个卷积层 ll
C l C_{l} Cl神经网络第l个卷积层的输出通道数 C o u t C_{out} Cout,也即该层的卷积核个数。

空间复杂度

NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第7张图片

空间复杂度(访存量),严格来讲包括两部分:总参数量 + 各层输出特征图。
**参数量:**模型所有带参数的层的权重参数总量(即模型体积,下式第一个求和表达式)
特征图:模型在实时运行过程中每层所计算出的输出特征图大小(下式第二个求和表达式)
NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第8张图片

总参数量只与卷积核的尺寸 K K K 、通道数 C C C 、层数 D D D 相关,而与输入数据的大小无关。
输出特征图的空间占用比较容易,就是其空间尺寸 M 2 M^{2} M2 和通道数 C C C 的连乘。
卷积神经网络的复杂度分析

习题5-7 忽略激活函数,分析卷积网络中卷积层的前向计算和反向传播是一种转置关系

NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第9张图片

选做推导CNN反向传播算法

池化层反向传播

池化层的反向传播比较容易理解,我们以最大池化举例,上图中,池化后的数字6对应于池化前的红色区域,实际上只有红色区域中最大值数字6对池化后的结果有影响,权重为1,而其它的数字对池化后的结果影响都为0。假设池化后数字6的位置 δ \delta δ误差为 ,误差反向传播回去时,红色区域中最大值对应的位置delta误差即等于 ,而其它3个位置对应的 δ \delta δ误差为0。

因此,在卷积神经网络最大池化前向传播时,不仅要记录区域的最大值,同时也要记录下来区域最大值的位置,方便 δ \delta δ误差的反向传播。

而平均池化就更简单了,由于平均池化时,区域中每个值对池化后结果贡献的权重都为区域大小的倒数,所以delta误差反向传播回来时,在区域每个位置的 δ \delta δ误差都为池化后 δ \delta δ误差除以区域的大小。

卷积层反向传播

NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第10张图片
NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第11张图片
NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第12张图片

总结

这次作业中,证明交换性的时候自己一个人总想用公式证明出来,可是到最后发现能力不够,证明不出来,也查阅不到相关资料,最后无奈只能用图解方法,在做第二问的时候,我以为1*1的卷积核并没有什么太大的用处,最后才发现用处大得很,又可以降维,还可以减少计算量,这次作业公式推导真的很麻烦,交的也比较晚了点。NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP)_第13张图片

参考

CNN 反向传递
NNDL 作业7:第五章课后题(1×1 卷积核 | CNN BP
卷积神经网络(CNN)反向传播算法推导

你可能感兴趣的:(深度学习,计算机视觉,cnn)