深度学习之卷积神经网络(6)梯度传播

 在完成手写数字图片识别实战后,我们对卷积神经网络的使用有了初步的了解。现在我们来解决一个关键问题,卷积层通过移动感受野的方式实现离散卷积操作,那么它的梯度传播是怎样进行的呢?

 考虑一简单的情形,输入3×33×33×3的单通道矩阵,与一个2×22×22×2的卷积核,进行卷积运算,输出结果打平后直接与虚构的标注计算误差,如下图所示。我们来讨论这种情况下的梯度更新方式。

卷积层梯度传播举例

 首先推导出张量O\boldsymbol OO的表达形式:
o00=x00w00+x01w01+x10w10+x11w11+bo01=x01w00+x02w01+x11w10+x12w11+bo10=x10w00+x11w01+x20w10+x21w11+bo11=x11w00+x12w01+x21w10+x22w11+bo_{00}=x_{00} w_{00}+x_{01} w_{01}+x_{10} w_{10}+x_{11} w_{11}+b\\ o_{01}=x_{01} w_{00}+x_{02} w_{01}+x_{11} w_{10}+x_{12} w_{11}+b\\ o_{10}=x_{10} w_{00}+x_{11} w_{01}+x_{20} w_{10}+x_{21} w_{11}+b\\ o_{11}=x_{11} w_{00}+x_{12} w_{01}+x_{21} w_{10}+x_{22} w_{11}+bo00​=x00​w00​+x01​w01​+x10​w10​+x11​w11​+bo01​=x01​w00​+x02​w01​+x11​w10​+x12​w11​+bo10​=x10​w00​+x11​w01​+x20​w10​+x21​w11​+bo11​=x11​w00​+x12​w01​+x21​w10​+x22​w11​+b

以w00w_{00}w00​的梯度计算为例,通过链式法则分解:
∂L∂w00=∑i∈{00,01,10,11}∂L∂oi∂oi∂w00\frac{∂\mathcal{L}}{∂w_{00}}=\sum_{i\in\{00,01,10,11\}}{\frac{∂\mathcal{L}}{∂o_i}\frac{∂o_i}{∂w_{00}}}∂w00​∂L​=i∈{00,01,10,11}∑​∂oi​∂L​∂w00​∂oi​​

其中∂L∂oi\frac{∂\mathcal{L}}{∂o_i}∂oi​∂L​可直接由误差函数推导出来,我们直接来考虑∂oi∂w00\frac{∂o_i}{∂w_{00}}∂w00​∂oi​​,例如:
∂o00∂w00=∂(x00w00+x01w01+x10w10+x11w11+bw00=x00\begin{aligned}\frac{∂o_{00}}{∂w_{00}}&=\frac{∂(x_{00} w_{00}+x_{01} w_{01}+x_{10} w_{10}+x_{11} w_{11}+b}{w_{00}} \\&=x_{00}\end{aligned}∂w00​∂o00​​​=w00​∂(x00​w00​+x01​w01​+x10​w10​+x11​w11​+b​=x00​​
同理:
∂o01∂w00=∂(x01w00+x02w01+x11w10+x12w11+bw00=x01\begin{aligned}\frac{∂o_{01}}{∂w_{00}}&=\frac{∂(x_{01} w_{00}+x_{02} w_{01}+x_{11} w_{10}+x_{12} w_{11}+b}{w_{00}} \\&=x_{01}\end{aligned}∂w00​∂o01​​​=w00​∂(x01​w00​+x02​w01​+x11​w10​+x12​w11​+b​=x01​​
∂o10∂w00=∂(x10w00+x11w01+x10w10+x21w11+bw00=x10\begin{aligned}\frac{∂o_{10}}{∂w_{00}}&=\frac{∂(x_{10} w_{00}+x_{11} w_{01}+x_{10} w_{10}+x_{21} w_{11}+b}{w_{00}} \\&=x_{10}\end{aligned}∂w00​∂o10​​​=w00​∂(x10​w00​+x11​w01​+x10​w10​+x21​w11​+b​=x10​​
∂o11∂w00=∂(x11w00+x12w01+x21w10+x22w11+bw00=x11\begin{aligned}\frac{∂o_{11}}{∂w_{00}}&=\frac{∂(x_{11} w_{00}+x_{12} w_{01}+x_{21} w_{10}+x_{22} w_{11}+b}{w_{00}} \\&=x_{11}\end{aligned}∂w00​∂o11​​​=w00​∂(x11​w00​+x12​w01​+x21​w10​+x22​w11​+b​=x11​​

 可以观察到,通过循环移动感受野的方式并没有改变网络层的可导性,同时梯度的推导也并不复杂,知识当网络层数增大以后,人工梯度推导将变得十分繁琐。不过不需要担心,深度学习框架可以帮我们自动完成所有参数的梯度计算与更新,我们只需要设计好网络结构即可。

深度学习之卷积神经网络(6)梯度传播相关推荐

  1. 深度学习之卷积神经网络(12)深度残差网络

    深度学习之卷积神经网络(12)深度残差网络 ResNet原理 ResBlock实现 AlexNet.VGG.GoogleLeNet等网络模型的出现将神经网络的法阵带入了几十层的阶段,研究人员发现网络的 ...

  2. 深度学习之卷积神经网络(8)BatchNorm层

    深度学习之卷积神经网络(8)BatchNorm层 BatchNorm层概念 BatchNorm层实现 1. 向前传播 2. 反向更新 3. BN层实现 4. 完整代码 卷积神经网络的出现,网络参数量大 ...

  3. 机器学习——深度学习之卷积神经网络(CNN)——AlexNet卷积神经网络结构

    目录 一.AlexNet卷积神经网络结构模型 1.数据库ImageNet 2.AlexNet第一层卷积层 二.AlexNet卷积神经网络的改进 1.非线性变化函数的改变--ReLU 2.最大池化(Ma ...

  4. 深度学习之卷积神经网络(Convolutional Neural Networks, CNN)(二)

    前面我们说了CNN的一般层次结构, 每个层的作用及其参数的优缺点等内容.深度学习之卷积神经网络(Convolutional Neural Networks, CNN)_fenglepeng的博客-CS ...

  5. 【深度学习】卷积神经网络-图片分类案例(pytorch实现)

    前言 前文已经介绍过卷积神经网络的基本概念[深度学习]卷积神经网络-CNN简单理论介绍.下面开始动手实践吧.本文任务描述如下: 从公开数据集CIFAR10中创建训练集.测试集数据,使用Pytorch构 ...

  6. July深度学习笔记之神经网络与反向传播算法

    July深度学习笔记之神经网络与反向传播算法 一.神经网络 神经网络的大致结构如下: 大致可以分为输入层.隐藏层与输出层. 而我们可以单独拿出来一个结点,可以发现,其实它就是类似一个逻辑回归(LR), ...

  7. 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)

    独家思维导图!让你秒懂李宏毅2020深度学习(三)--深度学习基础(神经网络和反向传播部分) 长文预警!!!前面两篇文章主要介绍了李宏毅视频中的机器学习部分,从这篇文章开始,我将介绍李宏毅视频中的深度 ...

  8. 【深度学习】卷积神经网络速成

    [深度学习]卷积神经网络速成 文章目录 [深度学习]卷积神经网络速成 1 概述 2 组成 2.1 卷积层 2.2 池化层 2.3 全连接层 3 一个案例 4 详细分析 1 概述 前馈神经网络(feed ...

  9. 深度学习之卷积神经网络(10)CIFAR10与VGG13实战

    深度学习之卷积神经网络(10)CIFAR10与VGG13实战 MNIST是机器学习最常用的数据集之一,但由于手写数字图片非常简单,并且MNIST数据集只保存了图片灰度信息,并不适合输入设计为RGB三通 ...

最新文章

  1. 学习webpack(二)
  2. Java的知识点18——数组存储表格数据、冒泡排序的基础算法、冒泡排序的优化算法、二分法查找
  3. Define change document object
  4. 协同过滤进化版本NeuralCF及tensorflow2实现
  5. smtp中mailfrom是必须的吗_你是住在高层建筑中吗?这是你必须了解的
  6. [html] 怎样使用iframe刷新父级页面?
  7. 车油表灯亮了,还能开多久?
  8. 管理感悟:独当一面,很难
  9. 一位腾讯离职创业 6 年 CEO 的忠告:不要等公司倒闭,才思考这 3 个问题
  10. FlyMcu开始连接一直未接收到的解决方案
  11. android中百分比显示_如何在菜单栏中显示Android的电池百分比
  12. 常见高清视频“扩展名”、视频标准
  13. 如何修改Word文字的行间距
  14. 计算机itpt证书有什么用,ITPT信息技术应用专业能力培训项目认证课程体系表.pdf...
  15. LPDDR4 新技术改进特性介绍
  16. puzzle(0919)一个白球一个坑、图形对位
  17. 一文让你秒懂计算虚拟机化
  18. Windows 实现桌面截屏并保存为.jpg
  19. Linux 环境进程间通信(三):消息队列
  20. 最新学习java的好评网站(从入门到面试)(不止java)

热门文章

  1. arcserver连接oracle,ArcSDE的二种连接方式(应用服务器连接,直接连接)
  2. python获取一个月之前日期_Python 获取几天前的时间
  3. QString之simplified()含义
  4. Android开发之Java基础JVM和ClassLoader以及类加机制面试题
  5. MailCore2 SDK API
  6. Swift--数组和字典(一)
  7. 于数据交换格式XML和JSON的比较
  8. 宝塔面板怎么下载php,宝塔面板下怎么安装Mosquitto-php扩展
  9. 四周有阴影_外面阳光普照,而有人需要到阴影处躲避
  10. swift -自定义返回图片,替换系统图片backItem