Batch Normalization论文阅读笔记

文献阅读 - Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 参考文献:Ioffe S , Szegedy C . Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[J]. 2015. 摘要(Abstract) 由于训练过程中各层输入的分布随前一层参数的变化而变化,使得深度神经网络的训练变得复杂,同时也导致学习率较低、初始参... 阅读详情

标题: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

随机梯度下降法(SGD)是训练深度网络的首选,利用momentum 和Adagrad等来达到最佳的性能。尽管随机梯度下降法对于训练深度网络简单高效,但是需要我们人为的去选择参数,比如学习速率、初始化参数、权重衰减系数、Dropout比例,等等。这些参数的选择对训练结果至关重要,以至于我们很多时间都浪费在这些的调参上。

神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低。

输入层的数据,已经人为的的归一化,后面网络每一层的输入数据分布是一直在发生变化的,前面层训练参数的更新将导致后面层输入数据分布的变化,因此必然会引起后面每一层输入数据分布的改变。而且,网络的前面几层发生微小的改变,那么后面几层就会被累积放大下去。我们把网络中间层在训练过程中,数据分布的改变称之为:“Internal Covariate Shift”。BN的提出,就是要解决在训练过程中,中间层数据分布发生改变的情况。

BN步骤:

  1. 求每一个小批量训练数据的均值;
  2. 求每一个小批量训练数据的方差;
  3. 使用求得的均值和方差对该批次的训练数据做归一化,获得0-1分布。其中ε 是为了避免除数为0时所使用的微小正数;
  4. 尺度变换和偏移:将xi乘以γ调整数值大小,再加上β 增加偏移后得到yi,这里的γ 是尺度因子,β是平移因子。这一步是BN的精髓,由于归一化后的xi 基本会被限制在正态分布下,使得网络的表达能力下降。为解决该问题,我们引入两个新的参数:γ , β 。γ和β是在训练时网络自己学习得到的。
    在这里插入图片描述

Batch Normalization允许训练使用更高的学习率

Batch Gradient Descent(批处理的随机梯度下降)使用多个梯度的均值来更新权重,用相对少的训练次数遍历完整个训练集,也正是因为平均了多个样本的梯度,许多样本对神经网络的贡献就被其他样本平均掉了,相当于在每个epoch中,训练集的样本数被缩小了。batch中每个样本的差异性越大,这种弊端就越严重。

而BN首先是把所有的samples的统计分布标准化,降低了batch内不同样本的差异性,然后又允许batch内的各个samples有各自的统计分布。所以,BN的优点自然也就是允许网络使用较大的学习速率进行训练,加快网络的训练速度(减少epoch次数),提升效果。

Batch Normalization防止过拟合

批归一化可帮助我们避免 x 的值在经过非线性激活函数之后陷入饱和的现象。也就是说,批归一化能够确保激活都不会过高或过低,确保不会梯度爆炸或者梯度消失。这有助于权重学习——如果不使用这一方案,某些权重可能永远不会学习。这还能帮助我们降低对参数的初始值的依赖。

批归一化也可用作正则化(regularization)的一种形式,有助于实现过拟合的最小化。使用批归一化时,我们无需再使用过多的 dropout;这是很有助益的,因为我们无需担心再执行 dropout 时丢失太多信息。但是,仍然建议组合使用这两种技术。

实验与结果

本文在MNIST手写数字识别的数据集上进行实验,结果显示没有用BN的原始网络的分布随着时间的变化都有显著变化,这使得后续隐藏层的训练复杂化。
而进行了批归一化(BN)的网络随着训练的进行中的分布更加稳定,使得训练速度更快,精度更高。
在这里插入图片描述
本文在Inception单网络上进行BN实验,结果如图2和图3所示,结果显示在BN-基线和BN-x5中加大学习率可以显著提高训练速度,而进一步提高学习率(BN-x30)会导致模型最初的训练有点慢,但达到了更高的精度。
在这里插入图片描述
在这里插入图片描述
通过将多个训练过的模型与批归一化(BN)相结合进行实验,结果比图像网络上最著名的系统表现得更好。
在这里插入图片描述

参考文献

[1] Ioffe, S. , and C. Szegedy . “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift.” JMLR.org (2015).
[2] https://baijiahao.baidu.com/s?id=1612936475591914473&wfr=spider&for=pc
[3] https://www.cnblogs.com/shona/p/12181061.html
[4]https://blog.csdn.net/vict_wang/article/details/88075861

Batch Normalization详解和momentum参数理解 论文:https://arxiv.org/pdf/1502.03167.pdf 以下博客对batch Normalization的原理,优点和代码解析做了非常清晰的讲解:http://blog.csdn.net/hjimce/article/details/50866313 batch Normalization公式 注意:上式中的γ和β是两个可以学习的参数(μ是求出的均值,σ是求出的... 阅读详情

相关推荐

Batch Normalization 论文阅读

论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 参考:https://www.cnblogs.com/guoyaohua/p/8724433.html BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。 BN 本质...

不忘初心不动摇 4197

深度学习100题(1)

来源:BAT面试1000题https://zhuanlan.zhihu.com/c_140166199 1、梯度下降算法的正确步骤是什么? a.计算预测值和真实值之间的误差 b.重复迭代,直至得到网络权重的最佳值 c.把输入传入网络,得到输出值 d.用随机值初始化权重和偏差 e.对每一个产生误差的神经元,调整相应的(权重)值以减小误差 A.abcde B.edcba C.cbaed D.dcaeb 解析:正确答案D,考查知识点-深度学习。 2、已知: - 大脑是有很多个叫做神经元的.

乐亦亦乐的博客 1万+

在Unity3d使用yolov8的onnx模型

输出OUTPUTS是float32[1,35,8400],表示它会输出一个大小为[1, 35, 8400]的浮点数张量。这个输出张量的维度表示了检测到的目标的数量、每个目标的预测参数以及网格单元的数量。输出张量的第一个维度1表示检测到的目标数量。每个目标由35个值组成,表示目标的类别、置信度、边界框的坐标及10个特定点的位置。要取得8400个数据中置信度最高的数据,然后获取该数据其他channel的数据。运行结果:(蓝色是检测手的边框,红点是自定义的点),其中的四个数字分别表示不同的维度。

shenqingyu0605202324的博客 5593

Batch Normalization:加速神经网络训练的通用手段

本文详尽介绍了近几年在深度学习领域十分重要的“小trick,大杀器”——Batch Normalization,实际编码实现对比加入BN前后模型的性能表现差异。

hyman.lu 2927

Mamba实战:如何用Samba框架轻松搞定RGB-D显著性检测(附避坑指南)

本文提供了基于Samba框架进行RGB-D显著性目标检测的实战指南。详细解析了从环境配置、数据预处理到模型推理与可视化的全流程,并重点剖析了多模态数据融合中的常见陷阱与调试技巧,旨在帮助开发者高效部署这一基于Mamba的先进视觉模型,规避工程实践中的典型问题。

dapp9builder的博客 612

告别编译失败:详解Keil MDK中ARM编译器V5与V6的区别及项目迁移选择

本文深入解析Keil MDK中ARM编译器V5与V6的核心差异,提供STM32项目迁移的完整指南。从代码生成策略、优化重点到语法支持,详细对比两版本特性,并给出项目兼容性评估框架和双版本共存配置方案,帮助开发者高效解决编译器版本冲突问题。

weixin_28684757的博客 505

神经网络中的常见标准化(Normalization)

具体做法如上图所示,计算除了通道维的均值和方差从而进行标准化,即batch中每个样本对应位置的特征做标准化(以均值为例,每个样本第n个通道的特征图计算均值,得到一个均值特征图,再对高和宽再算均值最终得到n个1x1的均值特征图)。其中γ\gammaγ和β\betaβ是可学习的超参数。BN的提出是为了加快神经网络的训练并且解决Internal Covariate Shift的问题。使用了BN之后我们可以采用较大的学习率。此外,BN也可以提供正则化的作用,从而减少Dropout的使用。pytorch简洁代码实现:

loki2018的博客 2211

AIDD-人工智能药物设计-构建基于机器学习方法的在线预测平台高准确预测药物诱导骨毒性

在此基础上,提取多种药物分子特征,包括分子指纹(如MACCS、Morgan、RDKit、TopologicalTorsion、AtomPairs与Descriptors)及分子图谱,通过Transformer编码器与神经网络进行机器学习模型训练。最后,将训练好的模型部署为在线Web服务器(BoneToxPD),供用户快速预测药物的骨毒性。本研究不仅在骨毒性预测的准确性方面取得了突破,还在模型解释性方面提供了新的视角,通过注意力机制精准识别出影响骨毒性的关键化学基团,推动药物研发领域更安全、更高效的发展。

itwangyang520的博客 1069

论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift

论文阅读第一篇:Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift二级目录三级目录 第一篇:Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift Ar Xiv:1502.03167v3[cs。 LG]2015年3月2日 二级目录 三级目录 ...

Pearl_Huang的博客 1663

【系统分析师】核心考点:100个高频知识点汇总

本文系统梳理了系统分析师考试的11大领域高频考点,重点解析了计算机硬件与体系结构的7个核心知识点:计算机五大部件(CPU/存储器/总线等)、校验码类型(奇偶/海明/CRC)、CISC与RISC指令系统对比、总线分类与特性、RAID磁盘阵列级别、流水线技术原理及Flynn系统分类法。内容涵盖硬件组成、数据校验、指令架构、存储技术等关键概念,通过表格对比和公式说明,为考生提供结构化的知识框架与备考重点。

数据知道的博客 5556

《从理念到落地:Claude Code 在真实项目中的深度实践指南》基于 Anthropic 团队内部使用经验的扩展与深度解读,一篇面向工程团队的全面实践手册

Claude Code 支持通过# 创建新的 API 端点根据以下输入创建完整的 API 端点:资源名称:$ARGUMENTS请创建以下文件:1. `src/routes/{resource}.routes.ts` - 路由定义2. `src/controllers/{resource}.controller.ts` - 控制器3. `src/services/{resource}.service.ts` - 服务层。

AI天才研究院 471

batch normalization 论文阅读笔记

08 BN: Accelerating Deep Network Training by Reducing Internal Covariate Shift 对于deepNN的训练为什么复杂: ​ 一旦之前的层的参数变了,这一层的输入的分布就会发生变化(可能很显著),这样就需要降低learning rate以及仔细的参数初始化。当整体分布逐渐往非线性函数的取值区间的饱和部分逼近时,反向传播的梯度可能消失收敛很慢 以上的现象称为internal covariate shift(在深层网络训练的过程中,由于网络

qq_43488473的博客 286

单片机设计具备断电记忆功能的计时器

本文介绍了如何设计一款具备断电记忆功能的计时器,利用单片机和EEPROM存储器实现了计时器值的保存和恢复。当然,在实际的设计中还需要考虑其他因素,如电源管理、时钟精度等,以确保计时器的正常运行和准确性。选择合适的单片机:在设计计时器时,我们需要选择一款具备存储功能的单片机,以便在断电后能够保存计时器的状态。可以优化显示方式,使用更加直观的界面来展示计时器的值;函数中,我们首先从 EEPROM 中读取计时器的初始值,然后在一个无限循环中每秒钟增加计时器的值,并将新的值写入 EEPROM 中。

RlDart的博客 1088

Batch Normalization 论文阅读笔记

Batch Normalization:Accelerating Deep Network Traning by Reducing Internal Covariate Shift 论文地址 概括 BN减少了internal covariate shift,后者指代训练过程中数据经过每层后发生的分布变化,因为每层微小的参数更新即会影响其输出的数据的分布,而随着网络越深,这种影响会越来越大,使得学习...

Peter的脱发日记 348

pandas教程:2012 Federal Election Commission Database 2012联邦选举委员会数据库

里面包含了支持者的名字,职业和雇主,地址,赞助金额。我们可以已经能想到如何切割、整理数据,来提取赞助者的统计数据,或提取宣传活动的模式,这里我们展示一些不同的分析方法。可以看到有些职业是同一种工作类型,指代的是同一个东西。这两个连续操作是分别独立执行的,一个结束后,另一个才开始。上,这里我是把数据集压缩成了ZIP格式,解压后能正常导入)。我觉得也有必要好好了解一下,这个网站做了很好的讲解,),所以我们最好添加这样的信息。这样的情况,即把两个索引操作连在一起。,发现映射关系被正常执行了,所以这里的。

Cachel Wood的博客 344

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Batch Normalization (BN) 论文阅读笔记

以前偷懒没有看BN的论文,现在找工作,每个面试官必问BN,必须花时间弄清BN的原理。奉劝找算法工程师的人一定要熟练掌握BN,不能只知道它在做标准化这么简单。 Batch Normalization(BN)解决的是Internal Covariate Shift (ICS)的问题。 Internal Covariate Shift在文中定义为 The change in the distrib...

icylling的专栏 2703

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

论文阅读笔记:看完也许能进一步了解Batch Normalization

训练深度神经网络非常复杂,因为在训练过程中,随着先前各层的参数发生变化,各层输入的分布也会发生变化,导致调参工作要做的很小心,训练更加困难,论文中将这种现象称为“internal covariate shift”,而Batch Normalization正式用来解决深度神经网络中internal covariate shift现象的方法。

BoCong-Deng的博客 1569

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Batch Normalization(2015,google) 论文阅读笔记

1.BN的提出  作者认为:网络训练过程中参数的不断改变导致后续每一层输入的分布也发生变化,而学习的过程又要使每一层适应输入的分布,因此我们不得不降低学习率、小心的初始化参数。作者将分布发生变化称之为 internal covariate shift(内部协变量转移)。  在进行数据预处理过程中,我们常将输入减去均值,甚至会对输入做白化,降维等操作,目的是为了加快训练。为什么减均值、白化可以加快训练

杰瑞的博客 661

论文阅读笔记《Batch Normalization Embeddings for Deep Domain Generalization》

作者认为映射的关键在于BN层上。在训练时,每个源域的模型共享除BN层的参数,而BN统计各自源域的均值、方差等统计信息。测试阶段,计算单个样本的均值和方差,与各个源域的均值、方差作比较,计算Wasserstein距离。最后,测试样本在三个源域训练得到的不同BN层会得到3个输出特征,这三个特征分别乘以各自与源域的距离的导数,得到最后的输出特征。假设每个源域可以映射成空间中的一个点,那么作者认为未知领域可以看着源域空间的线性组合。在测试时,将来自未知域的样本投影到同一空间,并将其域的属性推断为已知域的线性组合。

一起学习 310

【论文阅读笔记】Batch Normalization_Accelerating Deep Network Training by Reducing Internal Covariate Shift

前提知识:   covariate shift, 协向量变化,即输入变量x自身的变化【对于一个可学习系统的输入分布在改变。通俗的说,就是一个网络在训练过程中每层子网络的输入在不断变化】   Batch-Normalization,使得网络层输入的分布呈现标准正态分布【均值为0,方差为1】,其可使网络的训练加快【每一层网络的分布不一样,所需的学习率lr不一样,网络系统需要使用最低的那个lr来保证

时光机 °的博客 378

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 论文阅读笔记

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 论文阅读笔记论文中的相关问题1.内部协变量偏移2.加入BN层的位置3.BN层前的卷积不需要偏置,因为做BN会把偏置减掉 论文中的相关问题 1.内部协变量偏移 训练时参数变化会导致各层分布不断变化 2.加入BN层的位置 在非线性变换前加BN(因为RELU会导致一部分数据丢失) 3.BN层前的卷积不需要偏置,因为做BN会把偏置减

qingyuan512的博客 128

什么是 Batch normalization

目录 Batch_normalization BN来源: BN原因: BN做法: BN优缺点: LRN 为什么要有LRN 局部响应归一化? LRN公式 : Ref: 归一化(normalization) 将一批不太标准的数据统一到指定的格式. 我们在数据处理时常用的是将一组范围差距较大或者单位不同的数据依据一定规则变化到指定的范围之内。 Batch_normalizati...

渣渣 5万+

Batch Normalization与Layer Normalization解析

例如,输入的shape是[B,C,H,W],Batch Normalization拿出batch中一个样本,就是shape中的B,做标准化要求均值和方差,所以根据上述话理解应该是在通道C中拿出1个通道来做均值和方差,即拿出一个shape为[B,1,H,W]的值来做均值和方差。BN 是对batch取出一个数据的每个 channel 进行 Norm 处理,即输入的shape为[B,C,H,W],取出一个[B,1,H,W]对其求均值和方差,进行归一化。,方差同理,具体细节参考。,第一个通道的标准差。

周常见的博客 1807

详说Normalization(Batch Normalization,Layer Normalization,Instance Normalization,Group Normalization)

详说各种 Normalization Batch Normalization 是 Sergey 等人于2015年在 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中提出的一种归一化方法。 在开始讨论之前, 我们需要先探讨一个问题, 对于深度神经网络而言, 什么...

生命在于折腾! 2755
上一篇: 误差反向传播算法-BP算法
下一篇: ubuntu安装FSL
程序媛JD
博客等级 码龄10年 529粉丝 317原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值