特征归一化(Normalization)和Batch Normalization的理解

news2024/9/27 15:22:26

一、理解BN必备的前置知识(BN, LN等一系列Normalization方法的动机)
Feature Scaling(特征归一化/Normalization):通俗易懂理解特征归一化对梯度下降算法的重要性

总结一下得出的结论:
(以下举的例子是针对channel这个维度数据的分布,其余维度同理。值得注意的是:一个minibatch的图像在神经网络中的每一层输出的特征数据都是多维的:N×HW×C,所以任何一个维度都可以进行Normalization)

特征未归一化前,优化目标(loss)的等值图由于参数(对应下文的θ1和θ2)取值范围的不同成狭长的椭圆形(想象成空间中的一个碗,碗口的形状是椭圆形,梯度下降是想到达碗底)。为什么参数的取值范围会不同呢?比如有x1和x2两个特征,分别对应的参数是θ1和θ2,输出的特征就是y = θ1×x1+θ2×x2, 我们可以把x1和x2看成在特征图某个像素位置的两个channel,分别被2个卷积核作用的卷积区域内的特征,且x1特征的取值范围如[0,1000]远大于x2的取值范围如[0,10],假设x1和x2对因变量y的影响相当,那么θ1的取值范围就应该小于θ2。又因为数值更大的feature得到的梯度更大,下图中θ1对应更大数值的feature即x1,θ2对应更小数值的feature即x2,所以θ1走的step很大,θ2走的step很小,由于梯度方向总是垂直于等高线方向,左图走出的曲线是震荡性较大的“之”字形线路。归一化后,优化目标的等值图会变成右图的圆形,这是因为θ1和θ2的取值范围也变得接近了(基于前面x1和x2对因变量y的影响相当的假设)。θ1和θ2维度的下降速度也变得更为一致,这是因为归一化后由于x1和x2这两个feature的数值接近,所以θ1和θ2参数获得的梯度都差不多,容易更快地通过梯度下降找到最优解。
在这里插入图片描述
下图即为特征归一化的具体操作:
在这里插入图片描述

二、Batch Normalization理解:Batch Normalization的通俗解释

总结:基于第一节讲到的Normalization能为神经网络带来的种种好处,面临的下一个问题就是针对不同的任务,网络每一层的多维的数据在哪个维度进行Normalization是最合适的,于是就有了Batch Normalization(BN) 。在CV中常常使用BN,它是在NHW维度进行了归一化,而Channel维度的信息原封不动,因为可以认为在CV应用场景中,数据在不同channel中的信息很重要,如果对其进行归一化将会损失不同 channel的差异信息。所以总结一下:选择什么样的归一化方式,取决于你关注数据的哪部分信息。如果某个维度信息的差异性很重要,需要被拟合,那就别在那个维度进行归一化。BN针对一个batch内的所有样本的同一通道的元素进行标准化(对哪个维度做Norm,就在其他维度不动的情况下,基于该维度下的所有元素计算均值和方差,然后再做Norm)

还需注意的是Batch Normalization在训练时和推理时用的参数是不一样的。
训练用的是每个mini-batch训练样本均值和方差,同时还会一直计算Moving Average,Moving Average的初始均值和方差是0和1。
推理用的是所有mini-batches训练样本均值和方差的累计滑动平均结果(Moving Average),推理中的所有参数都是固定住的。
在这里插入图片描述
在这里插入图片描述
Refer
Pytorch Batch Normalization 对照原理实践
【炼丹技巧】指数移动平均(EMA)的原理及PyTorch实现

三、其余Normalization
Layer Normalization(批标准化):对一个样本内所有通道的元素进行标准化

Instance Normalization(实例标准化):对一个样本内对每个通道的元素分别进行标准化,即在H*W维度上进行标准化

Group Normalization(组标准化):对一个样本内对几个通道的元素分别进行标准化
在这里插入图片描述

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

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

相关文章

创建基于Vue2.0开发项目的两种方式

前天开始接触基于Vue2.0的前端项目,实际操作中肯定会遇到一些问题,慢慢摸索和总结。   其实,作为开发一般企事业单位应用的小项目,前端的懂一点HTMLCSSJavaScroptJQueryJson(或者Xml),后端懂一…

PGLBox全面解决图训练速度、成本、稳定性、复杂算法四大问题!

图神经网络(Graph Neural Network,GNN)是近年来出现的一种利用深度学习直接对图结构数据进行学习的方法,通过在图中的节点和边上制定聚合的策略,GNN能够学习到图结构数据中节点以及边内在规律和更加深层次的语义特征。…

Dubbo学习笔记2

Dubbo学习笔记(二) Dubbo常用配置 覆盖策略 规则: 1、精确优先(方法级优先,接口次之,全局配置再次之) 2、消费者设置优先(如果级别一样,则消费方优先,提供…

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎

网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 …

图解LeetCode——剑指 Offer 28. 对称的二叉树

一、题目 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 二、示例 2.1> 示例 1: 【输入】root [1,2,2,3,4,4,3] 【输出】true 2.2> 示例 2: 【输入】root [1,2,2,nul…

quartz使用及原理解析

quartz简介 ​ Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能: 持久性作业 - 就是保持调度…

瑞典军事研究:从认知心理学的视角探讨军事创新进程

来源:Military Innovation as the Result of Mental Models of Technology 《摘要》 政治紧张局势的加剧和技术发展的进步促使Scandinavian 国家(斯堪的纳维亚半岛,欧洲最大的半岛,有挪威、瑞典两国以及芬兰北端的一小部分。&am…

SpringBoot3集成TDengine自适应裂变存储

前言 首先很遗憾的告诉大家,今天这篇分享要关注才可以看了。原因是穷啊,现在基本都是要人民币玩家了,就比如chatGPT、copilot,这些AI虽然都是可以很好的辅助编码,但是都是要钱。入驻CSDN有些年头了,中间有几…

Python没有指针怎么实现链表?

Python没有指针怎么实现链表? 学习数据结构的的链表和树时,会遇到节点(node)这个词,节点是处理数据结构的链表和树的基础。节点是一种数据元素,包括两个部分:一个是实际需要用到的数据&#xff…

考研复试机试 | C++ | 尽量不要用python,很多学校不支持

目录1.1打印日期 (清华大学上机题)题目:代码:1.2改一改:上一题反过来问题代码:2.Day of Week (上交&&清华机试题)题目:代码:3.剩下的树(清…

sni第三种模式复现、幽灵猫网络抓包方式复现、所有漏洞复现

sni第三种模式复现 搭建环境 [rootlocalhost nginx]# mkdir certificate [rootlocalhost nginx]# cd certificate/[rootlocalhost certificate]# openssl genrsa -des3 -out ssl.key 4096 [rootlocalhost certificate]# openssl req -new -key ssl.key -out aaa.csr [rootlo…

Django框架之模型视图-URLconf

URLconf 浏览者通过在浏览器的地址栏中输入网址请求网站对于Django开发的网站,由哪一个视图进行处理请求,是由url匹配找到的 配置URLconf 1.settings.py中 指定url配置 ROOT_URLCONF 项目.urls2.项目中urls.py 匹配成功后,包含到应用的urls…

ChatGPT时代,别再折腾孩子了

今天这篇完全是从两件事儿有感而发。昨天在文印店,在复印机上看到装订好的几页纸,我瞥了一眼,是历史知识点:隋朝大运河分为四段,分别是___ ___ ___ ___,连接了五大河___ ___ ___ ___ ______ 年&#xff…

开源云真机平台——Sonic应用实践

前言 Sonic是一款开源、支持分布式部署、在线自动化测试的私有云真机平台。想着写一篇总结分享。 一、云真机平台 1.云真机平台对比 目前市面上常见的云真机平台有两种,一种是各大服务商如阿里、腾讯、百度推出的公共云真机平台,如:WeTes…

2月18日绿健简报,星期六,农历正月廿八

2月18日绿健简报,星期六,农历正月廿八坚持阅读,静待花开1. 中国证监会发布全面实行股票发行注册制相关制度规则,即日起施行。2. 返回地面75天后神舟十四号乘组航天员首次与媒体和公众正式见面。3. 银保监会查处5家金融机构违法违规…

C语言结构体复习总结

目录 一、结构体引入 1.1 为什么要用结构体: 1.2 定义一个结构体: 1.3 结构体在声明的时候不要定义变量: 1.4 根据业务需求定义不同的结构体: 二、定义结构体和使用变量 2.1 最好不要在声明结构体时定义变量: …

找工作必看,用Python爬取数据分析岗位信息并可视化分析

导读: 最近经常收到人事小姐姐和猎头小哥哥的面试邀请,想想最近也不是招聘旺季呀。但又想到许多小伙伴们有找工作这方面的需求,今天就来分享一篇简单的爬虫案例,旨在跟大家一起分析一下部分招聘市场。以"数据分析"为例。…

Linux之Xshell工具使用

shell简介Xshell是一个远程工具,可以远程连接linux系统 ,SSH,远程管理 Xshell来远程访问Linux系统的终端 。shell的英文含义是“壳”;它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表…

Eclipse下Maven的集成

Eclipse下Maven的集成 2.1指定本地maven环境 参考:Eclipse的Maven创建_叶书文的博客-CSDN博客_eclipse创建maven项目 指定用本地maven指定maven仓库设置和地址2.2创建maven项目 1.新建 2.目录设置 3.坐标设置(随便写就行) 4.目录结构 2.3配置…

事件驱动型架构

事件驱动型架构是一种软件设计模式,其中微服务会对状态变化(称为“事件”)作出反应。事件可以携带状态(例如商品价格或收货地址),或者事件也可以是标识符(例如,订单送达或发货通知&a…