【目标检测】池化层(pooling)的反向传播是怎么实现的

news2025/8/1 11:54:30

目录:池化层的反向传播是怎么实现的

  • 一、前言
  • 二、平均池化
  • 二、最大池化
  • 四、最大池化的数学原理

一、前言

卷积神经网络中一个不可导的环节就是Pooling池化操作,因为Pooling池化操作使得feature map的尺寸发生变化,假如做 2 × 2 2\times 2 2×2的池化,步距为2,假设第 l + 1 l+1 l+1层有4个梯度,那么第 l l l层就会有16个梯度,这使得梯度无法对位的进行传播下去。
在这里插入图片描述
其实解决这个问题的思想也很简单,就是把1个像素的梯度传递给4个像素。但是需要保证传递的loss(或者梯度)总和不变。

根据这条原则,mean pooling和max pooling的反向传播也是不同的。

二、平均池化

mean pooling的前向传播就是把一个patch中的值求取平均来做pooling,那么反向传播的过程也就是把某个元素的梯度等分为 份分配给前一层,这样就保证池化前后的梯度(残差)之和保持不变,还是比较好理解的,图示如下:
在这里插入图片描述
这里有一个容易犯错的地方,不是简单的把梯度复制 遍后直接反向传播回去,这样会造成loss之和变为原来的N倍,网络是会产生梯度爆炸的!

二、最大池化

max pooling也要满足梯度之和不变的原则,max pooling的前向传播是把patch中最大的值传递给后一层,而其他像素的值直接被舍弃掉,那么反向传播也就是:
在这里插入图片描述
在这里插入图片描述
所以反向传播也就是把梯度直接传给前一层某一个像素,而其他像素不接受梯度,也就是为0。所以max pooling操作和mean pooling操作不同点在于需要记录下池化操作时到底那个像素的值是最大,也就是max id,这个变量就是记录最大值所在的位置,因为在反向传播中要用到。

四、最大池化的数学原理

x i x_i xi为输入层节点, y i y_i yi为输出层节点,那么损失函数 L L L对输入层节点 x i x_i xi的梯度为:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一.node的事件处理;二.node的全局对象;三.node的readline模块;四.node的Web编程

目录 一.node的事件处理 1.node采用的事件驱动模式来进行事件处理的:只有当事件被触发时才执行相关程序 2.node是单线程运行的:采用事件轮询方式,不断的查询事件队列中的消息,然后根据消息执行对应的回调函数 3.node事件机制中…

硬核Vue3响应式原理解析,为你保驾护航渡过寒冬

前言 大家好,我是落叶小小少年,虽然比较菜,虽然才开始写作分享,我始终相信 核心demo更容易理解深的技术点每一次基础的学习都是对知识的巩固 因为从年初就开始使用Vue3了,现在才来学习Vue3,但是也不算晚…

yolo5 训练无人人机识别系统

环境搭建: 安装驱动 点击鼠标右键,如果出现NVIDIA图标,点开,出现如下图片 我的显卡是1650,根据显卡的型号去官网找相应的驱动下载就好了。驱动官网 安装好之后,打开命令行cmd,输入如下指令&a…

登录功能(基于SpringBoot+MP+Vue实现的功能)

目录 前言 一、UserMapper层代码分析 二、UserService层代码分析 1.UserService接口 2.UserServiceImpl实现类 3.UserController层代码分析 4.拦截器设置 5.展示效果图 总结 前言 登录功能是web开发中常见的功能,也是学后端必须要练得一个功能,本…

【JavaWeb】手写一个Servlet+JSP+JavaBean分页

✅✅作者主页:🔗孙不坚1208的博客 🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中) 📋📋 本文摘要:本篇文章主要分享如何使用ServletJSPJavaBean…

C++对象拷贝

前言:本教程使用到的工具是vs2010;能用VC6就用VC6,因为vs2010生成的汇编代码可能有点乱;此外,文章中涉及的汇编,我都会予以解释,所以放心观看。 目录 一、什么是对象拷贝? 二、C对…

【微服务】SpringCloud微服务剔除下线源码解析

💖 Spring家族及微服务系列文章 ✨【微服务】SpringCloud微服务续约源码解析 ✨【微服务】SpringCloud微服务注册源码解析 ✨【微服务】Nacos2.x服务发现?RPC调用?重试机制? ✨【微服务】Nacos通知客户端服务变更以及重试机制 ✨【…

SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.4 Redis 下载安装与基本使用

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇4 数据层解决方案4.4 Redis 下载安装与基本使用4.4.1 问题引入4.4.2 …

Linux Mint(Ubuntu)上 安装 效率神器 utools

Linux Mint(Ubuntu)上 安装 效率神器 utools 我的 Windows 系统的笔记本只有 256G 固态,磁盘已经快用满了,最近想装个 Linux 玩玩,1 选择了 Linux Mint,然后就在闲置的移动硬盘上安装了 Linux Mint 21 cin…

Centos 安装Java库的多种方式

安装jdk(介绍三种方法) 查看java版本:java -version 方法一:利用yum源来安装jdk(此方法不需要配置环境变量) 查看yum库中的java安装包 :yum -y list java* 安装需要的jdk版本的所有java程序:yum -y instal…

纯正体验,极致商务 | 丽亭酒店聚焦未来赛道,实现共赢发展

10月28日,锦江酒店(中国区)“齐鲁集锦 共话未来”投资人交流会在济南盛大召开,面向华东地区投资人,行业专家、商旅客、品牌代表齐聚一堂,共同聚焦酒店市场投资新价值,商讨新时代酒店行业新机遇,多维探索酒店…

蓝牙数据包协议解析

1.前言 由于工作需要,初次接触蓝牙。从最基础的知识开始了解。 引用wiki中的介绍: 蓝牙(英语:Bluetooth),一种无线通讯技术标准,用来让固定与移动设备,在短距离间交换资料&#xff…

第一章:Spring流程执行步骤

Spring执行流程图 注意观察:每一个执行步骤的结果都会返回到DispatcherServlet ,然后再出发调用, 所以是请求接口的入口也是出口。 简单了解几个大类的走的流程和具体功能 DispatcherServlet 类 中文调度应用程序,而Servlet就…

libusb系列-007-Qt下使用libusb1.0.26源码

libusb系列-007-Qt下使用libusb1.0.26源码 文章目录libusb系列-007-Qt下使用libusb1.0.26源码摘要安装编译环境确认需要的文件开始编译错误1:找不到文件错误2:expected错误3:SCM_CREDENTALS错误4:类型冲突错误5 assert断言错误错误…

低代码平台和无代码平台有什么区别

低代码(LowCode)/无代码(NoCode)”是技术界近几年的热门词汇之一,随着企业数字化发展的深入,越来越多的场景化需求要求企业具备更加灵活敏捷的应用开发能力,传统应用开发模式周期长、技术人员能力要求高,无…

OWASP API SECURITY TOP 10

目录 1. API 安全风险 2. 细说TOP10 1. Broken Object Level Authorization 2. Broken User Authentication 3 Excessive Data Exposure 4 Lack of Resources & Rate Limiting 5 Broken Function Level Authorization 6 Mass Assignment 7 security misconfigura…

redis哨兵系列1

需要配合源码一起康~ 9.1 哨兵基本概念 官网手册yyds:https://redis.io/docs/manual/sentinel/ redis主从模式,如果主挂了,需要人工将从节点提升为主节点,通知应用修改主节点的地址。不是很友好,so Redis 2.8之后开…

同花顺_代码解析_技术指标_EJK

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 目录 EMV ENV EXPMA JF_ZNZX KD KDJ KDJFS EMV 简易波动指标 1.EMV 由下往上穿越0 轴时,视为中期买进参考信号; 2.EMV 由上往下穿越0 轴时,视为中…

根据以下电路图,补全STM32F103RCT6的IO口初始化程序

void KEY_Init(void)//接按键的端口初始化程序 { RCC->APB2ENR|______________; //使能PORTA时钟 JTAG_Set(SWD_ENABLE); GPIOA->CRL&__________________; // PA3设置成下拉输入 GPIOA->CRL|__________________; } void LED_Init(void)//接LED的端…

【Qt】控件探幽——QLineEdit

注1:本系列文章使用的Qt版本为Qt 6.3.1 注2:本系列文章常规情况下不会直接贴出源码供复制,都以图片形式展示。所有代码,自己动手写一写,记忆更深刻。 本文目录QLineEdit探幽1、设置数据/获取数据2、只读(re…