宽卷积:给定一个二维图像和一个二维卷积核,对图像进行零填充,两端各补和个零,得到全填充的图像.图像和卷积核的宽卷积定义为。 其中,表示宽卷积运算。
在宽卷积中,卷积核的宽度大于输入数据的宽度。如果我们将输入数据表示为1维向量,卷积核的宽度通常是小于或等于输入数据的长度。但在宽卷积中,卷积核的宽度可以超过输入数据的长度。
宽卷积可以带来以下好处:
更大的感受野: 宽卷积可以捕获输入数据的更大局部特征,因为卷积核跨越了更广泛的区域。这有助于网络学习全局性的模式和关系。
参数共享: 宽卷积仍然采用参数共享的思想,即卷积核的权重在整个输入上是共享的。这有助于减少模型的参数数量,提高训练效率。
计算复杂性: 宽卷积的计算复杂性相对较高,因为涉及到更多的输入数据点。在一些场景下,可以通过适当的设置卷积核的步幅(stride)来降低计算复杂性。
证明:
对进行两端各补u-1,v-1个零,得到 ,
对进行两端各补m-1,n-1个零,得到 ,
要证明原公式成立,只需要证明:,
以下我来个例子
对于第一个情况,输入特征映射组的大小是100 × 100 × 256,使用3 × 3的卷积核,输出特征映射组的大小也是100 × 100 × 256。
时间复杂度: 假设输入特征映射组的大小为H1 × W1 × C1,卷积核大小为K × K,其中K表示卷积核的边长,C1表示输入特征映射组的通道数。 计算每个位置上的卷积操作需要进行K × K × C1次乘法和加法运算。由于输出特征映射组的大小与输入特征映射组相同,所以总共需要进行H1 × W1 × C1 × K × K次乘法和加法运算。
空间复杂度: 在进行卷积操作时,除了存储输入特征映射组和卷积核的数据外,还需要存储输出特征映射组的数据。因此,空间复杂度与输出特征映射组的大小相同,即100 × 100 × 256。
对于第二个情况,先使用1 × 1的卷积核将输入特征映射组的通道数降低为64,得到100 × 100 × 64的特征映射组,然后再使用3 × 3的卷积核将其扩展为100 × 100 × 256的特征映射组。
时间复杂度:
- 1 × 1卷积核:计算每个位置上的卷积操作需要进行1 × 1 × 256次乘法和加法运算,得到100 × 100 × 64的特征映射组。
- 3 × 3卷积核:计算每个位置上的卷积操作需要进行3 × 3 × 64次乘法和加法运算,得到100 × 100 × 256的特征映射组。 所以总共需要进行100 × 100 × 64 × 1 × 1次乘法和加法运算,以及100 × 100 × 256 × 3 × 3次乘法和加法运算。
空间复杂度: 在进行卷积操作时,除了存储输入特征映射组和卷积核的数据外,还需要存储中间结果与输出特征映射组的数据。因此,空间复杂度与输出特征映射组的大小相同,即100 × 100 × 256。
以下是一个卷积的示例图:
以下是一个包含一个卷积层、一个池化层和一个全连接层的卷积神经网络反向传播算法的例子:
假设我们有一个卷积层,输入是 X,卷积核是 W1,偏置项是 b1,激活函数是 f1,输出是 Y1。接下来有一个池化层,池化窗口大小是 p×p,步长是 s,输出是 Y2。最后有一个全连接层,输入是 Y2,权重是 W2,偏置项是 b2,输出是 Y3。损失函数是 L。
正向传播:
- Y1=f1(W1∗X+b1)
- Y2=max(0,Y1) (假设使用最大池化)
- Y3=W2∗Y2+b2
- O=softmax(Y3) (假设使用 softmax 激活函数)
反向传播:
- 首先我们需要计算损失函数 L 对输出的梯度:∂O/∂L
- 然后,我们将这个梯度传递给全连接层的输出 Y3,得到:∂O/∂L×∂Y2/∂Y3
- 然后我们需要计算全连接层对池化层输出的梯度:∂Y2/∂Y3×W2T×∂O/∂L
- 然后,我们将这个梯度传递给池化层的输出 Y2,得到:∂O/∂L×∂Y2/∂Y3×W2T×max(0,Y1) (其中 ∂Y2/∂Y3=W2T)
- 然后我们需要计算池化层对卷积层输出的梯度:∂Y1/∂Y2×max(0,Y1)×∂O/∂L×∂Y2/∂Y3×W2T×max(0,Y1) (其中 ∂Y1/∂Y2={0,s, if Y1<0 if Y1≥0)
- 最后,我们可以更新卷积核的参数:W1=W1−η×∂O/∂L×∂Y2/∂Y3×W2T×max(0,Y1)×s×max(0,Y1)
可以看出,卷积层的前向计算和反向传播之间存在一种转置关系。在前向计算中,输入X与卷积核W进行卷积操作得到输出Y;而在反向传播中,梯度的传播则通过对卷积核W和输入X执行相同的卷积操作(转置之后)
空洞卷积,也被称为膨胀卷积或扩张卷积,是一种在卷积神经网络中使用的卷积操作方法。与传统的卷积操作相比,空洞卷积引入了一个叫做膨胀率的参数。
在传统的卷积操作中,卷积核以固定的步幅在输入特征图上滑动并进行计算。而在空洞卷积中,通过在卷积核的元素之间插入一些间隔来改变卷积核的采样方式。
具体地说,对于每个卷积核的元素,将其与输入特征图上等距离的位置进行计算。膨胀率决定了卷积核元素之间的间隔大小。例如,如果膨胀率为1,则表示没有任何间隔,等同于传统的卷积操作;如果膨胀率大于1,则会在卷积核元素之间插入一些间隔。
得到:
1、有一些知识课上开小差没学会,做课后作业可以看到不足,增长知识
2、推导尽量参数写好看点,要不然自己都看乱了,容易出错
参考链接:
【23-24 秋学期】NNDL 作业8 卷积 导数 反向传播-CSDN博客
NNDL 作业3 反向传播BP-CSDN博客