目录
习题5-7 忽略激活函数,分析卷积网络中卷积层的前向计算和反向传播(公式(5.39))是一种转置关系。
习题5-2 证明宽卷积具有交换性,即公式(5.13)。
习题5-3 分析卷积神经网络中用1x1的卷积核的作用。
1、降维:比如,一张500 * 500且厚度depth为100 的图片在20个filter上做1*1的卷积,那么结果的大小为500*500*20。
2、加入非线性。卷积层之后经过激励层,1*1的卷积在前一层的学习表示上添加了非线性激励( non-linear activation ),提升网络的表达能力;
3、升维(用最少的参数拓宽网络channal):不仅在输入处有一个1*1卷积核,在输出处也有一个卷积核,3*3,64的卷积核的channel是64,只需添加一个1*1,256的卷积核,只用64*256个参数就能把网络channel从64拓宽四倍到256。
4、跨通道信息交互(channal 的变换)
例子:使用1*1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3*3,64channels的卷积核后面添加一个1*1,28channels的卷积核,就变成了3*3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。
注意:只是在channel维度上做线性组合,W和H上是共享权值的sliding window
习题5-4 对于一个输入为100x100x256的特征映射组,使用3x3的卷积核,输出为100x100x256的特征映射组的卷积层,求其时间和空间复杂度。如果引入一个1x1卷积核,先得到100x100x64的特征映射,再进行3x3的卷积,得到100x100x256的特征映射组,求其时间和空间复杂度。
1、
=100;=3;=256 ;=256
时间复杂度:100×100×3×3×256×256 = 5898240000
空间复杂度:100×100×256 = 2560000
2、
=100;=1;=3;=256;=64;=64;=256
时间复杂度:100×100×1×1×256×64 + 100×100×3×3×64×256 = 1638400000
空间复杂度:100×100×64 + 100×100×256 = 3200000
习题5-7 忽略激活函数,分析卷积网络中卷积层的前向计算和反向传播(公式(5.39))是一种转置关系。
【选做】推导CNN反向传播算法。
全连接层:
与深度神经网络DNN的反向传播算法一致,辅助变量:
进而求得参数W,b 的梯度:
池化层
设池化层的输入为,输出为,则有:
则
其中,upsample指在反向传播时,把的矩阵大小还原成池化之前的大小,一共分为两种情况:
(1)如果是Max,则把的各元素值放在之前做前向传播算法得到最大值的位置,所以这里需要额外记录每个区块中最大元素的位置
(2)如果是Average,则把 的各元素值取平均后,填入对应的区块位置。
卷积层
卷积层的前向传播公式:
则
其中Rotation180意思是卷积核W被旋转180度,也即上下翻转一次,接着左右翻转一次。另外注意,这里需要对进行适当的padding,当stride为1时,p ′ = k -p-1。
参数W ,b 的梯度:
其中,关于W的梯度没有旋转操作,意思是把的所有通道沿通道方向求和,累加成一个通道。
总结
这次作业把1*1的卷积核的作用通过查询,明白了它的作用和功能,而且自己又将宽卷积的交换性证明了一遍,而且知道了卷积网络中卷积层的前向计算和反向传播(公式(5.39))是一种转置关系,同时也通过查询也进行了CNN反向传播算法的推导。