神经网络与深度学习 作业7:第五章课后题(1×1 卷积核 | CNN BP)

目录

 习题5-2 证明宽卷积具有交换性,即公式(5.13)。

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

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

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

【选做】推导CNN反向传播算法。 

【选做】设计简易CNN模型,分别用Numpy、Python实现卷积层和池化层的反向传播算子,并代入数值测试。

 参考资料


 习题5-2 证明宽卷积具有交换性,即公式(5.13)。

证明: 

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

(一)每个1×1的卷积核都试图提取基于相同像素位置的特征的融合表达。可以实现特征升维或降维的目的;

由于 1×1并不会改变 height 和 width,改变通道的第一个最直观的结果,就是可以将原本的数据量进行增加或者减少。这里看其他文章或者博客中都称之为升维、降维。但我觉得维度并没有改变,改变的只是 height × width × channels 中的 channels 这一个维度的大小而已。

(二)1×1的卷积核可以在保持特征图不变的情况下大幅增加非线性特性;

 1*1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep。

(三)将位于每个点位上的所有通道特征进行卷积,实现跨通道信息交互;

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

(四)减小计算量,降低时间复杂度。

以GoogLeNet的3a模块为例,输入的feature map是28×28×192,3a模块中1×1卷积通道为64,3×3卷积通道为128,5×5卷积通道为32,如果是左图结构,那么卷积核参数为1×1×192×64+3×3×192×128+5×5×192×32,而右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),参数大约减少到原来的三分之一。

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

情况一:\small M=100;\small K=3;\small C_{in}=256 ;\small C_{out}=256

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

空间复杂度一:100×100×256 = 2560000


情况二:\small M=100;\small K_{1}=1;\small K_{2}=3;\small C_{in1}=256;\small C_{out1}=64;\small C_{in2}=64;\small C_{out2}=256

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

空间复杂度二:100×100×64 + 100×100×256 = 3200000

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值