点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:机器学习算法那些事

阅读本文之前,可以先阅读之前讲述的全连接层的反向传播算法详细推导过程,

已经了解反向传播算法的请自动忽略。

1. 卷积层的反向传播

废话不说,直接上图:

假设输入为一张单通道图像  ,卷积核大小为  ,输出为  。为了加速计算,首先将 按卷积核滑动顺序依次展开,如上图所示。其中,  中的红色框代表  中的红色框展开后的结果,将  依次按照此方式展开,可得  。同理可得  ,然后通过矩阵相乘可得输出  (与  等价)。此时,已经将CNN转化为FC,与反向传播算法完全一致,这里不再做详细介绍。

当有 N 个样本,做一个batch训练,即channel=N时,前向与反向传播方式如下图所示:

其中,输入图像channel=3,使用2个  的卷积核,输出两张图像,如图所示。红色框、黄色框代表的是卷积核以及使用该卷积核得到的输出图像  。当输入图像为一个batch时,  的转化方式如上图,首先将输入图像与卷积核分别按单通道图像展开,然后将展开后的矩阵在行方向级联。此时,已经将CNN转化为了FC,与反向传播算法完全一致,这里不再做详细介绍。

2. Average pooling的反向传播

 不用求,因为  为常数。 

3. Max-pooling的反向传播

遍历  的每一行,找出此行最大值的索引  ,然后将  中索引为  的值设为  对应行的值,将此行其余列的值设为  ,如上图所示红框所示。假设  中(1,1)处的值是第一行中最大的值,则将  赋值给  中索引为  的位置。最后计算:  。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

四张图彻底搞懂CNN反向传播算法(通俗易懂)相关推荐

  1. 卷积神经网络(CNN)反向传播算法推导

    作者丨南柯一梦宁沉沦@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/61898234 编辑丨极市平台 导读 在本篇文章中我们将从直观感受和数学公式两方面来介绍CNN反 ...

  2. 卷积神经网络(CNN)反向传播算法

    在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结.在阅读本文前,建议先研究DNN的反向传播算法:深度 ...

  3. javascript 不让成为nan_一张图彻底搞懂JavaScript的==运算

    大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中"最糟糕的特性"之一. 在仔细阅读了ECMAScript规 ...

  4. CNN反向传播算法过程

    主模块 规格数据输入(加载,调格式,归一化) 定义网络结构 设置训练参数 调用初始化模块 调用训练模块 调用测试模块 画图 初始化模块 设置初始化参数(输入通道,输入尺寸) 遍历层(计算尺寸,输入输出 ...

  5. synchronized 分布式时为什么会失效_10张图,搞懂索引为什么会失效?

    MySQL数据是如何存储的? 聚集索引 我们先建如下的一张表 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ...

  6. 原来10张图就可以搞懂分布式链路追踪系统原理

    分布式系统为什么需要链路追踪? 随着互联网业务快速扩展,软件架构也日益变得复杂,为了适应海量用户高并发请求,系统中越来越多的组件开始走向分布式化,如单体架构拆分为微服务.服务内缓存变为分布式缓存.服务 ...

  7. 13 张图彻底搞懂分布式系统服务注册与发现原理

    作者 | 雷架 来源 | 爱笑的架构师(ID:DancingOnYourCode) 头图 |  CSDN 下载自东方IC 在微服务架构或分布式环境下,服务注册与发现技术不可或缺,这也是程序员进阶之路必 ...

  8. I2C协议靠这16张图彻底搞懂(超详细)

    文章目录 背景 硬件层 数据传输协议 实际上如何工作? 单个主设备连接多个从机 多个主设备连接多个从机 如何编程? 总结 背景 I²C(Inter-Integrated Circuit),中文应该叫集 ...

  9. 13张图彻底搞懂分布式系统服务注册与发现原理

    在微服务架构或分布式环境下,服务注册与发现技术不可或缺,这也是程序员进阶之路必须要掌握的核心技术之一,本文通过图解的方式带领大家轻轻松松掌握. 引入服务注册与发现组件的原因 先来看一个问题,假如现在我 ...

最新文章

  1. java 大小相间排序_ArrayList实现根据某属性大小相间排序
  2. Out of Hay
  3. DataInputStream
  4. 游戏提高性能 游戏降帧处理
  5. 使用gpio输出驱动蜂鸣器出现破音_探索者 STM32F407 开发板资料连载第七章 蜂鸣器实验...
  6. 开源 java CMS - FreeCMS2.3会员我的简历
  7. keystone系列二:HTTP协议
  8. 【面经系列】八位硕博大佬的百度之旅
  9. 基于数码相机拍照图像分析的植被覆盖率(FVC)计算软件
  10. 百度硬盘搜索使用指南
  11. vue插槽面试题_vue面试题总结
  12. Java——FileOutputStream,字符输出流,以字符为单位写出数据
  13. ZYNQ - 嵌入式Linux开发 -05- Linux C编程和Makefile
  14. BFC是什么?有什么用?
  15. Linux 应用领域
  16. W: GPG 错误:http://nginx.org/packages/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY ABF5BD827BD9
  17. win10升级win11后笔记本电脑充不了电解决方法
  18. Mybatis按年月日时分秒查询,MySQL年月日时分秒查询
  19. ssm+jsp计算机毕业设计高速公路管理系统设计与实现e6hx6(程序+LW+源码+远程部署)
  20. 远程连接出现 登陆失败:用户账户限制 解决方案

热门文章

  1. 一文全面了解基于内容的推荐算法
  2. 肖仰华:知识图谱落地,不止于“实现”
  3. 滴滴裁员补偿丰厚,员工称裁出幸福感?
  4. 大数据时代,谁的眼神锁定你?
  5. 800万中文词,腾讯AI Lab开源大规模NLP数据集
  6. 厉害了!不重启JVM,替换掉已经加载的类
  7. 堪称神级的 Java 技术栈手册火了!
  8. Guava 中的 Stopwatch 是个什么鬼?
  9. 这 10 道 Spring Boot 常见面试题你需要了解下
  10. 人工神经网络背后的数学原理!