5-2证明款卷积具有交换性,即:
乘法交换律可知,因此矩阵内对应元素均相等,即
进一步得出:
5-4 对于一个输入为100 × 100 × 256的特征映射组, 使用3 × 3的卷积核, 输出为100 × 100 × 256的特征映射组的卷积层, 求其时间和空间复杂度. 如果引入一个1 × 1卷积核, 先得到100 × 100 × 64的特征映射, 再进行3 × 3的卷积, 得到100 × 100 × 256的特征映射组, 求其时间和空间复杂度.
1、Ot=100*100*3*3*256*256=5898240000
Os=100*100*256+3*3*256*256=3149824
2、Ot=100*100*1*1*256*64+100*100*3*3*64*256=1638400000
Os=100*100*64+100*100*256+3*3*256*64+3*3*64*256=3494912
5-5 对于一个二维卷积, 输入为3 × 3, 卷积核大小为2 × 2, 试将卷积操作重写为仿射变换的形式. 参见公式(5.45)
将输入输出分别展开为9×1、4×1的矩阵:
5-7 忽略激活函数, 分析卷积网络中卷积层的前向计算和反向传播(公式(5.39)) 是一种转置关系.
5-8在空洞卷积中, 当卷积核大小为𝐾, 膨胀率为𝐷时, 如何设置零填充𝑃的值以使得卷积为等宽卷积 .
卷积核有效大小为:
将其带入得出
附加题 阅读 “5.3.1 卷积神经网络的反向传播算法”,举例说明推导过程
需要解决的问题:
- 池化层没有激活函数,可以令池化层的激活函数为其本身,因此池化层激活函数的导数为1.
- 一致池化层的,推导上一隐藏层的,因为池化层在前向传播过程中对输入进行了压缩,因此需要向前反向推导
举例表示:假设池化区域为2×2,则的第k个子矩阵为:
对其还原成:
若是MAX池化,假设前向传播时记录的最大值位置为左上、右下、右上、左下,则转换后的矩阵为:
若是Average,则进行平均,转换后的矩阵为:
由此得出:
其中,upsample函数完成了池化误差矩阵放大与误差重新分配的逻辑。
- 卷积层是通过张量卷积,或者是若干个矩阵求和而得的当前层的输出,这和DNN不同,DNN的全连接层是直接进行矩阵乘法得到当前层的输出。由此,反向传播中,上一层的地推计算方法肯定有所不同
这里与DNN过程相似,区别在于对于含有卷积的式子求导时,卷积核被旋转了180度,即rot180()。而DNN这里只是矩阵的转置。
- 对于卷积层,由于W使用的运算是卷积,那么 从推导出该层的所有卷积核W,b的方式也不同。
对于全连接层,可以按DNN的反向传播算法求该层的W,b的梯度,而池化层并没有W,b,也不用求W,b的梯度。只有卷积层的W,b需要求。
W和b的关系为:
此时卷积核并没有反转,主要是层内的求导,而不是反向传播到上一层的求导。因此有
对于b的梯度:因为是高维张量,而b只是一个向量,不能像DNN那样直接和相等。通常是将的各个子矩阵的项分别求和,得到一个误差向量,即:
参考: