卷积convolution函数详解及反向传播中的梯度求导

本文深入探讨卷积概念,详细定义了卷积运算,并重点解析了反向传播过程中,误差值对输入X、权重W和偏置b的梯度推导,包括无重叠、行重叠、列重叠和行列重叠四种情况。同时,提供了编程实现的简化方法。
摘要由CSDN通过智能技术生成

摘要

本文给出 convolution 函数的定义, 并求解其在反向传播中的梯度

相关

配套代码, 请参考文章 :

Python和PyTorch对比实现卷积convolution函数及反向传播

系列文章索引 :
https://blog.csdn.net/oBrightLamp/article/details/85067981

正文

1. 概念

灰度图片单通道卷积 :
在这里插入图片描述
图片来源 : https://github.com/vdumoulin/conv_arithmetic

RGB图片三通道分别卷积, 将三个实数值结果相加 :
在这里插入图片描述
图片来源 : http://cs231n.github.io/convolutional-networks/

关于卷积的概念, 网络上已经有大量的详细资料, 都讲的很好, 这里就不再赘述了.

2. 卷积的定义

本文约定矩阵元素的脚标从 0 开始.

当 X 为 m x n 矩阵, W 为 2 x 2 矩阵, 步长为 1 时 :
y i j = ∑ i = 0 m − 2 ∑ j = 0 n − 2 ( x i , j w 00 + x i , j + 1 w 01 + x i + 1 , j w 10 + x i + 1 , j + 1 w 11 ) + b    i ⩽ m − 2    j ⩽ n − 2 y_{ij} = \sum_{i=0}^{m-2}\sum_{j=0}^{n-2}(x_{i,j}w_{00} + x_{i,j+1}w_{01}+x_{i+1,j}w_{10} + x_{i+1,j+1}w_{11}) + b\\ \;\\ i\leqslant m-2 \\ \;\\ j\leqslant n-2 \\ yij=i=0m2j=0n2(xi,jw00+xi,j+1w01+xi+1,jw10+xi+1,j+1w11)+bim2jn2
当 X 为 m x n 矩阵, W 为 p x q 矩阵, 步长为 1 时 :
y i j = ∑ r = 0 p − 1 ∑ s = 0 q − 1 x i + r , j + s w r s + b    i ⩽ m − p    j ⩽ n − q y_{ij} =\sum_{r=0}^{p-1}\sum_{s=0}^{q-1}x_{i+r,j+s}w_{rs}+ b\\ \;\\ i\leqslant m-p\\ \;\\ j\leqslant n-q\\ yij=r=0p1s=0q1xi+r,j+swrs+bimpjnq
当 W 为 p x q 矩阵, 步长为 t, 为保证整除, 填充后的 X 是 m x n 矩阵时 :
y i j = ∑ r = 0 p − 1 ∑ s = 0 q − 1 x i ⋅ t + r , j ⋅ t + s w r s + b    i ⩽ ( m − p ) / t    j ⩽ ( n − q ) / t y_{ij} = \sum_{r=0}^{p-1}\sum_{s=0}^{q-1}x_{i\cdot t+r,j\cdot t+s}w_{rs}+b\\ \;\\ i\leqslant (m-p)/t\\ \;\\ j\leqslant (n-q)/t\\ yij=r=0p1s=0q1xit+r,jt+swrs+bi(mp)/tj(nq)/t

偏置 b 为标量.

3. 反向传播

3.1 误差值对 X 的梯度的理论推导

当 W 为 p x q 矩阵, 步长为 t, 为保证整除, 填充后的 X 是 m x n 矩阵, 经 conv 卷积得到矩阵 g x h 矩阵 Y, 往前 forward 传播得到误差值 error (标量 e ). 上游的误差梯度向量 ∇ e ( Y ) \nabla e_{(Y)} e(Y) 已在反向传播时得到, 求 e 对 X 的梯度.

已知 :
y i j = ∑ r = 0 p − 1 ∑ s = 0 q − 1 x i ⋅ t + r ,    j ⋅ t + s w r s + b    i ⩽ ( m − p ) / t    j ⩽ ( n − q ) / t y_{ij} = \sum_{r=0}^{p-1}\sum_{s=0}^{q-1}x_{i\cdot t+r,\;j\cdot t+s}w_{rs}+b\\ \;\\ i\leqslant (m-p)/t\\ \;\\ j\leqslant (n-q)/t\\ yij=r=0p1s=0q1xit+r,jt+swrs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值