NNDL 作业8

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

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

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

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

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

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

习题5-5 对于一个二维卷积, 输入为3 × 3, 卷积核大小为2 × 2, 试将卷积操作重写为仿射变换的形式. 参见公式(5.45) .

首先介绍这两种操作之间的不同:

二维卷积是一种操作,常用于图像处理和卷积神经网络中。在图像处理中,二维卷积是通过将一个小的二维矩阵(也称为卷积核或滤波器)滑动至图像的每一个像素位置,并与该位置的像素值进行一定的运算(通常是乘法和加法),从而提取出图像的某些特征或进行图像的某种变换。在卷积神经网络中,二维卷积层通常用于处理图像数据,通过学习不同的卷积核,可以提取输入图像的不同特征。

仿射变换则是一种更一般的几何变换,它是在几何中定义两个向量空间之间的映射关系。仿射变换可以用一个非奇异的线性变换和一个平移变换来组成。在有限维的情况下,每个仿射变换都可以由一个矩阵和一个向量来描述。这种变换可以保持直线的平行性和角度的不变性,也就是说,无论物体在空间中的位置和方向如何变化,只要其相对于其他物体的位置和方向保持不变,那么这个物体在经过仿射变换后仍然会保持这种不变性。

而重写的具体操作为:

  1. 将输入矩阵和卷积核矩阵进行逐元素相乘,得到输出矩阵的中间结果。
  2. 对于输出矩阵的每一个元素,将其值更新为中间结果矩阵中对应位置的四个元素的加和。

具体来说,假设输入矩阵为 I,卷积核矩阵为 K,输出矩阵为 O,那么二维卷积操作可以表示为:

O[i][j] = Σ[m][n] * I[i+m][j+n] * K[m][n]

其中,i 和 j 表示输出矩阵的坐标,m 和 n 表示卷积核矩阵的坐标。为了将这个操作重写为仿射变换的形式,可以将其拆分为两个步骤:

  1. 首先进行仿射变换,将输入矩阵 I 转换为一个中间结果矩阵 I',转换矩阵为 A,则有:
    I' = AI
  2. 然后对中间结果矩阵 I' 进行加和操作,得到输出矩阵 O,即:
    O = I' * B
    其中,B 是一个加和系数矩阵,与卷积核矩阵 K 有关。

综合起来,可以将二维卷积操作重写为仿射变换的形式:
O = (AI) * B
其中,A 是仿射变换矩阵,B 是加和系数矩阵。需要注意的是,这个重写方式并不一定比原始的卷积操作更高效,因为需要进行额外的矩阵乘法操作。

附加题 阅读 “5.3.1 卷积神经网络的反向传播算法”,举例说明推导过程.

池化层-卷积层

在反向传播时,我们首先会把池化层梯度的所有子矩阵矩阵大小还原成池化之前的大小,然后如果是最大池化,则把池化层梯度的所有子矩阵的各个池化局域的值放在之前做前向传播算法得到最大值的位置。如果是Average,则把池化层梯度的所有子矩阵的各个池化局域的值取平均后放在还原后的子矩阵位置。这个过程一般叫做upsample。

假如我们的池化区域大小是2×2,步长也为2,第i个子特征矩阵为:

如果是最大值池化,假设我们之前在前向传播时记录的最大位置分别是左上、右下、右上、左下则转换后的矩阵为:

如果是平均池化,则进行平均,转换后的矩阵为

这样我们就得到了卷积层的误差公式

由池化层的结果向前一层传播的话,由于池化层没有参数需要学习,但是由于池化操作造成了数据维度的变化,所以需要有一个数据的上采样过程,上采样过程跟池化的方法有关。
  上述公式写成矩阵形式为:

卷积层-卷积层

公式为

普通网络的反向推导误差的公式:

可以看到区别在于,下一层的权重w的转置操作,变成了旋转180度的操作,也就是上下翻转一次,左右再翻转一次可参考下图,Q是下一层的误差,周围补0方便计算,W是180度翻转后的卷积核,P是W和Q做卷积的结果:

已知卷积层的误差,推导该层的W,b的梯度

经过以上各步骤,我们已经算出每一层的误差了,那么:

  1. 对于全连接层,可以按照普通网络的反向传播算法求该层W,b的梯度。
  2. 对于池化层,它并没有W,b,也不用求W,b的梯度。
  3. 只有卷积层的W,b需要求出。

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

习题5-8 在空洞卷积中, 当卷积核大小为𝐾, 膨胀率为𝐷时, 如何设置零填充𝑃的值以使得卷积为等宽卷积 .

根据等宽卷积:
(M - K' + 2P)/S + 1 = M,其中S= 1,
K' = K + (K-1)(D-1),
求得 :
P = (K-1)D/2

总结:本次作业对于我还是比较有帮助的,尤其是在一步步推导过程中,知道了这个东西到底怎么来的,但有些数学知识还是不清楚,所以很多都是跟着大神们的步骤一步步去推,这里面稍微比较复杂的就是反向传播的推导过程,卷积神经网络不同于前馈神经网络里面的反向传播,但其中一些过程还是有相似之处,比如全连接层和卷积层的误差传导和参数更新就一样,但对于其中一些过程还是无法全部理解,在后续会再重复看整个过程,加深理解。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值