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

目录

习题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 证明宽卷积具有交换性

先设一个二维图像X\in R^{M\times N}和一个二维卷积核W=R^{U\times V},然后对该二维图像X进行零填充,两端各补U-1 和V-1 个零,得到全填充的图像\widetilde{X}\in R^{(M+2U-2)\times (N+2V-2)}

根据宽卷积定义y_{ij}=\sum^m_{n=1-(m-1)}\sum^n_{v=1-(n-1)}w_{uv}\cdot x_{i+u-1,j+v-1}

 为了让x的下标形式和w的进行对换,进行变量替换

使s=i-u+1, t=j-v+1, 所以u=s-i+1,v=t-j+1

那么y_{ij}=\sum^{i-1+m}_{s=i+1-m}\sum^{j-1+n}_{t=j+1-n}x_{st}\cdot w_{s-i+1,t-j+1}

 已知 i \in [1,M]J,J \in [1,N]

因此对于

 由于宽卷积的条件,s和t的变动范围是可行的。

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

1.升维/降维
1*1卷积可以用来调节feature map的通道数,对不同通道上的像素点进行线性组合,将原本的数据量进行增加或者减少,即可实现feature map的升维或降维功能

2.增加非线性特性

每使用 1x1卷积核,及增加一层卷积层,所以网络深度得以增加。 而使用 1x1卷积核后,可以保持特征图大小与输入尺寸相同,卷积层卷积过程会包含一个激活函数,从而增加了非线性。在输入尺寸不发生改变的情况下而增加了非线性,所以会增加整个网络的表达能力。

习题5-4 对于一个输入为100×100×256的特征映射组,使用3×3的卷积核,输出为100×100×256的特征映射组的卷积层,求其时间和空间复杂度。如果引入一个1×1的卷积核,先得到100×100×64的特征映射,再进行3×3的卷积,得到100×100×256的特征映射组,求其时间和空间复杂度。

M为输出特征图的尺寸,K为卷积核的尺寸,C_{in}为输入通道数,C_{out}为输入通道数,时间复杂度O_{t}(M^2*K^2*C_{in}*C_{out}),空间复杂度O_{s}(K^2*C_{in}*C_{out}+M^2*C_{out})

3×3的卷积核

时间复杂度:100×100×3×3^256×256=5898240000

空间复杂度:3×3^256×256+100×100×256=3149824

 1×1的卷积核

时间复杂度:100×100×1×1×256×64+100×100×3×3×64×256=1638400000

空间复杂度:1×1×256×64+100×100×64+3×3×64×256+100×100×256=3363840

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

以一个3×3的卷积核为例,输入为X输出为Y

在这里插入图片描述X=\begin{pmatrix} x_1&x_2&x_3&x_4\ x_5&x_6&x_7&x_8\ x_9&x_{10}&x_{11}&x_{12}\ x_{13}&x_{14}&x_{15}&x_{16}\ \end{pmatrix}W=\begin{pmatrix} w_{00}&w_{01}&w_{02}\ w_{10}&w_{11}&w_{12}\ w_{20}&w_{21}&w_{22}\ \end{pmatrix}Y=\begin{pmatrix} y_1&y_2\ y_3&y_4\ \end{pmatrix}在这里插入图片描述
将4×4的输入特征展开为16×1的矩阵,y展开为4×1的矩阵,将卷积计算转化为矩阵相乘

在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
因为在这里插入图片描述在这里插入图片描述在这里插入图片描述
所以

在这里插入图片描述

  可以看出前向计算和反向传播是一种转置关系。

选做:推导CNN反向传播算法

以最大池化举例,上图中,池化后的数字6对应于池化前的红色区域,实际上只有红色区域中最大值数字6对池化后的结果有影响,权重为1,而其它的数字对池化后的结果影响都为0。假设池化后数字6的位置delta误差为 δ ,误差反向传播回去时,红色区域中最大值对应的位置delta误差即等于 δ ,而其它3个位置对应的delta误差为0。因此,在卷积神经网络最大池化前向传播时,不仅要记录区域的最大值,同时也要记录下来区域最大值的位置,方便delta误差的反向传播。

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

 然后卷积层就是通过张量卷积,或者说若干个矩阵卷积求和而得到当前层的输出,这和一般的网络直接进行矩阵乘法得到当前层的输出不同。这样在卷积层反向传播的时候,上一层误差的递推计算方法肯定有所不同。对于卷积层,由于W使用的运算是卷积,那么由该层误差推导出该层的所有卷积核的W,b的方式也不同。由于卷积层可以有多个卷积核,各个卷积核的处理方法是完全相同且独立的。
 

参考

卷积神经网络(CNN)反向传播算法 - 刘建平Pinard - 博客园 (cnblogs.com)

十二、CNN的反向传播 - 知乎 (zhihu.com)

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

卷积神经网络(CNN)反向传播算法推导 - 知乎 (zhihu.com)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值