卷积convolution函数的矩阵化计算方法及其梯度的反向传播

本文详细介绍了卷积函数如何通过矩阵化方法进行计算,特别是针对批处理和多通道数据的处理。同时,文章阐述了矩阵化卷积在反向传播中的梯度计算,帮助理解深度学习的算法原理。配合提供的代码,读者可以更好地掌握这一方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

本文给出卷积 convolution 函数的矩阵化计算方法, 并求解其在反向传播中的梯度

相关

配套代码, 请参考文章 :

Python 实现 TensorFlow 和 PyTorch 验证卷积 convolution 函数矩阵化计算及反向传播

Affine 变换的定义和梯度, 请参考文章 :

affine/linear(仿射/线性)变换函数详解及全连接层反向传播的梯度求导

系列文章索引 :
https://blog.youkuaiyun.com/oBrightLamp/article/details/85067981

正文

在本书的前文, 我们给出了卷积函数的定义及其梯度反向传播的计算方法. 为了深入理解卷积的含义, 前文使用的是原生的卷积定义, 编程实现时使用了循环算法. 为了避免过多的循环嵌套造成理解困难, 前文并没有考虑 mini-batch 批处理和多通道卷积算法.

使用卷积的矩阵化计算方法, 可以大大简化批处理和多通道卷积计算的算法实现. 这一方法也有助于理解后面将要介绍的反卷积 (又称转置卷积) 的概念.

因为本书希望以最小的代价理解深度学习的算法原理, 不打算重新造轮子, 这里默认输入的数据已通过合适的 padding 操作和维度相容检查, 不再考虑相关算法的实现. 有兴趣的读者可自行在本文的基础上添加前处理和后处理算法.

1. 主要过程

以下图为例, 输入的数据为 3 通道 RGB 彩色图片, 尺寸为 5 x 5, 一个批次共有 3 张图片.

卷积核的同样为 3 通道, 尺寸为 3 x 3, 共有两个.

每一张图片都经过两个卷积核, 卷积的步长为 2, 输出两张

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值