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

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

图像 X 和 卷积核 W 的 宽卷积 定义为:W \widetilde{\otimes}X \stackrel{\mathrm{\triangle}}{=}W\otimes \widetilde{X}
全填充图像:\widetilde{X}\in \mathbb{R}^{(M+2U-2)\times(N+2V-2)}
图像 X 和 卷积核 W 有固定长度时,它们的 宽卷积 具有交换性:
rot180(W)\widetilde{\otimes }X=rot180(X)\widetilde{\otimes }W
rot180(W){\otimes }\widetilde{X}=rot180(X){\otimes }\widetilde{W}
证明:
首先给定一个二维图像:X\in \mathbb{R}^{M\times N}和一个二维卷积核W\in \mathbb{R}^{U\times V}
因为要对图像X进行卷积,但是上面定义中提到了是宽卷积,所以先对他进行填充,两端各补U-1和V-1个零,得到全填充图像
X\in \mathbb{R}^{(M+2U-2)\times (N+2V-2)}
为了方便我们先设一下
W=\begin{pmatrix} a_1&b_1\\ c_1&d_1\\ \end{pmatrix}
X=\begin{pmatrix} a_2&b_2&c_2\\ d_2&e_2&f_2\\ g_2&h_2&i_2\\ \end{pmatrix}
因为我们要证明交换性,所以要对W也填充,就是W两端各补M-1和N-1个零,得到全填充图像
W\in \mathbb{R}^{(U+2M-1)\times (V+2N-1)}
从我们设的X和W很容易可以看出来U=N=2,M=N=3。
那么填充完的
\widetilde{W}=\begin{pmatrix} 0&0&0&0&0&0\\ 0&0&0&0&0&0\\ 0&0&a_1&b_1&0&0\\ 0&0&c_1&d_1&0&0\\ 0&0&0&0&0&0\\ 0&0&0&0&0&0\\ \end{pmatrix}
\widetilde{X}=\begin{pmatrix} 0&0&0&0&0\\ 0&a_2&b_2&c_2&0\\ 0&d_2&e_2&f_2&0\\ 0&g_2&h_2&i_2&0\\ 0&0&0&0&0\\ \end{pmatrix}
然后把W和X旋转180°
rot180(W)=\begin{pmatrix} d_1&c_1\\ b_1&a_1\\ \end{pmatrix}
rot180(X)=\begin{pmatrix} i_2&h_2&g_2\\ f_2&e_2&d_2\\ c_2&b_2&a_2\\ \end{pmatrix}
然后就方便计算
rot180(W)\otimes \widetilde{X}=\begin{pmatrix} d_1&c_1\\ b_1&a_1\\ \end{pmatrix}\otimes \begin{pmatrix} 0&0&0&0&0\\ 0&a_2&b_2&c_2&0\\ 0&d_2&e_2&f_2&0\\ 0&g_2&h_2&i_2&0\\ 0&0&0&0&0\\ \end{pmatrix}=
\begin{pmatrix} a_1a_2&b_1a_2+a_1b_2&b_1b_2+a_1c_2&b_1c_2\\ c_1a_2+a_1d_2&d_1a_2+c_1b_2+b_1d_2+a_1e_2&d_1b_2+c_1c_2+b_1e_2+a_1f_2&d_1c_2+b_1f_2\\ c_1d_2+a_1g_2&d_1d_2+c_1e_2+b_1g_2+a_1h_2&d_1e_2+c_1f_2+b_1h_2+a_1i_2&d_1f_2+b_1i_2\\ c_1g_2&d_1g_2+c_1h_2&d_1h_2+c_1i_2&d_1i_2 \end{pmatrix}

 rot180(X)\otimes \widetilde{W}=\begin{pmatrix} i_2&h_2&g_2\\ f_2&e_2&d_2\\ c_2&b_2&a_2\\ \end{pmatrix}\otimes \begin{pmatrix} 0&0&0&0&0&0\\ 0&0&0&0&0&0\\ 0&0&a_1&b_1&0&0\\ 0&0&c_1&d_1&0&0\\ 0&0&0&0&0&0\\ 0&0&0&0&0&0\\ \end{pmatrix}=

\begin{pmatrix} a_1a_2&b_1a_2+a_1b_2&b_1b_2+a_1c_2&b_1c_2\\ c_1a_2+a_1d_2&d_1a_2+c_1b_2+b_1d_2+a_1e_2&d_1b_2+c_1c_2+b_1e_2+a_1f_2&d_1c_2+b_1f_2\\ c_1d_2+a_1g_2&d_1d_2+c_1e_2+b_1g_2+a_1h_2&d_1e_2+c_1f_2+b_1h_2+a_1i_2&d_1f_2+b_1i_2\\ c_1g_2&d_1g_2+c_1h_2&d_1h_2+c_1i_2&d_1i_2 \end{pmatrix}

 可以看出来我们得到的结果是一样的。所以交换律成立。

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

1、升降维

1x1卷积核可以通过控制卷积核数量实现降维或升维。

从卷积层流程图中可以清楚的看到 卷积后的特征图通道数与卷积核的个数是相同的。所以,如果想要升维或降维,只需要通过修改卷积核的个数即可。

2、跨通道信息交互(channal 的变换)

使用1x 1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3x 3,64channels的卷积核后面添加一个1x 1,28channels的卷积核,就变成了3x 3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。

3、增加网络深度(增加非线性)

每使用 1x1卷积核,及增加一层卷积层,所以网络深度得以增加。 而使用 1x1卷积核后,可以保持特征图大小与输入尺寸相同,卷积层卷积过程会包含一个激活函数,从而增加了非线性。

在输入尺寸不发生改变的情况下而增加了非线性,所以会增加整个网络的表达能力。

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

(1)

时间复杂度:256×100×100×256×3×3 = 5,898,240,000

空间复杂度:256×100×100 = 2,560,000

(2)

时间复杂度:64×100×100×256 + 256×100×100×64×3×3 = 1,638,400,000

空间复杂度:64×100×100 + 256×100×100 = 3,200,000

习题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的矩阵,将卷积计算转化为矩阵相乘

Y_{4\times 1}=C_{4\times 16}\times X_{16\times 1}

Y=\begin{bmatrix} y_1\\ y_2\\ y_3\\ y_4\\ \end{bmatrix}        C=\begin{bmatrix} w_{20}&w_{01}&w_{02}&0&w_{10}&w_{11}&w_{12}&...\\ 0&w_{20}&w_{01}&w_{02}&0&w_{10}&w_{11}&...\\ 0&0&w_{20}&w_{01}&w_{02}&0&w_{10}&...\\ 0&0&0&w_{20}&w_{01}&w_{02}&0&...\\ \end{bmatrix}        X=\begin{bmatrix} x_1\\ x_2\\ \vdots\\ x_4\\ \end{bmatrix}

\frac{\partial loss}{\partial x_j}=\sum_{i}^{4}\frac{\partial loss}{\partial y_i}\cdot \frac{\partial y_i}{\partial x_j}        而y_i=\sum_{i=1}^{16}c_{ij}x_{j}        即\frac{\partial y_i}{\partial x_j}=c_{ij}

所以\frac{\partial loss}{\partial x}=\begin{bmatrix} \frac{\partial loss}{\partial x_1}\\ \frac{\partial loss}{\partial x_2}\\ \vdots \\ \frac{\partial loss}{\partial x_16}\\ \end{bmatrix}=\begin{bmatrix} c_1^T\\ c_2^T\\ \vdots \\ c_{16}^T\\ \end{bmatrix}\frac{\partial loss}{\partial Y}=C^T\frac{\partial loss}{\partial Y}

再看一下上面的Y=CX可以发现忽略激活函数时卷积网络中卷积层的前向计算和反向传播是一种转置关系。

CNN反向传播推到

首先简单回顾一下一般的前馈神经网络的反向传播:

 对于卷积层的反向传播,我们首先回忆下卷积层的前向传播公式:

a^l=\sigma (z^l)=\sigma (a^{l-1}W^l+b^l)

卷积层和汇聚层中误差项的计算有所不同,因此我们分别计算其误差项。

汇聚层

没有参数,反向传播时,不需权值更新。

 

 

卷积层 

 

总结:

这次的作业先是证明了卷积交换律。不得不说手打公式太累了,还有卷积的计算,在电脑上打一遍,纸上算一遍,然后再跟电脑上对照一遍发现有的算错了,改过来以后又验证了一遍,眼镜都要看瞎了。不过还是值得的,比较要证明一个公式,只是把数带进去的话就有点投机取巧了,用变量才能更好的理解。

然后就是1×1卷积核的作用,原来只知道可以升降维和增加深度,这次经过资料的查阅发现了跨通道信息交互这个作用,收获不小。

还有卷积层的前向计算和反向传播是一种转置关系的证明也是一点一点公式打出来,不过这个比较简单,量也少一点。

最后就是CNN反向传播的推到,读懂了书上和老师给的ppt后照着在纸上手写一遍确实加深了印象,不过写的比较潦草,为了方便以后阅读就直接把书上和ppt上的搬过来了。

参考链接:

(28条消息) 1×1卷积核的作用_郭小花不爱吃香菜的博客-CSDN博客_卷积核的作用

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HBU_fangerfang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值