什么是 Batch normalization

批归一化(Batch Normalization)详解 批归一化(Batch Normalization)详解 文章目录批归一化(Batch Normalization)详解前言一、数据归一化二、BN解决的问题:Internal Covariate Shift三、BN如何做的数据归一化四、BN的本质总结 前言 批归一化简称BN,是由Google于2015年提出,这是一个深度神经网络训练的技巧,它不仅可以加快了模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中“梯度弥散(特征分布较散)”的问题,从而使得训练深层网络模型更加容易和稳定。所以目前BN已经成为几 阅读详情

目录

Batch_normalization

BN来源:

BN原因:

BN做法:

BN优缺点:

LRN

为什么要有LRN 局部响应归一化?

LRN公式 :

Ref:


归一化(normalization)

将一批不太标准的数据统一到指定的格式.

我们在数据处理时常用的是将一组范围差距较大或者单位不同的数据依据一定规则变化到指定的范围之内。

Batch_normalization

BN来源:

有之前的工作说明对图像的像素值分布变换为以0为均值,单位方差的正态分布数值时(这种操作被称为whiten),可以加速网络收敛。现在换作深度神经网络每一隐藏层的输入也可以做whiten吧?这样BN出现了。

 

BN原因:

随着网络的深度增加,每层特征值分布会逐渐的向激活函数的输出区间的上下两端(激活函数饱和区间)靠近,这样继续下去就会导致梯度消失。BN就是通过方法将该层特征值分布重新拉回标准正态分布,特征值将落在激活函数对于输入较为敏感的区间,输入的小变化可导致损失函数较大的变化,使得梯度变大,避免梯度消失,同时也可加快收敛。

具体形象理解可以查看:https://www.cnblogs.com/guoyaohua/p/8724433.html

 

BN做法:

https://i-blog.csdnimg.cn/blog_migrate/5be413aa2ab18bf94035bba8d4ccb960.png

上图来自https://www.cnblogs.com/guoyaohua/p/8724433.html

位于Y = weight*X+Bias之后,激活函数(非线性函数)变换之前,即作用在Y上,作为激活函数输入。

过程:input={x1,x2,x3…xn}

1 计算 x1-xn的均值u

2 计算x1-xn的方差v

3 每个x_i = (x_i – u) / (sqrt(v^2)+ e)  e是一个小小偏置,防止分母趋向于0. 

4 在对结果进行scale于shift操作 x_i = scale*x_i + shift

第四步存在的原因是batch_normal后,数据趋向标准正态,会导致网络表达能力变差,这里加入后标准正态分布有些偏移,变得不那么标准了。这两个参数时学习而来。

 

BN优缺点:

减少梯度消失,加快了收敛过程。

起到类似dropout一样的正则化能力,一定程度上防止过拟合。

放宽了一定的调参要求。

可以替代LRN。

 

但是需要计算均值与方差,不适合动态网络或者RNN。计算均值方差依赖每批次,因此数据最好足够打乱。

LRN

为什么要有LRN 局部响应归一化?

https://blog.csdn.net/hduxiejun/article/details/70570086

在神经生物学有一概念叫 “侧抑制”,指的是被激活的神经元会抑制相邻的神经元。

局部响应归一化借鉴了“侧抑制”的思想来实现局部抑制,对局部神经元的活动创建竞争机制,使得相应比较大的值相对大,小的更小。

 

优点:

可提高模型泛化能力,当使用Relu时这种“侧抑制”的方法很管用。

 

LRN公式 :

https://i-blog.csdnimg.cn/blog_migrate/2c3b6812ef8ccb71a6191eb653f70f15.png

a 是第i个核(特征通道)在特征图(x,y)处的输出,在这里作为公式输入。

b 是第i个核(特征通道)在特征图(x,y)处经过LRN后的输出,在这里作为公式输出。

N是通道数(特征图最后一维)。

n是你想要局部抑制的特征通道维数。

K,α,β是超参数。

举个例子:

I =6, (x,y) =(2,2) ,N=10, n=4,a = [w,h,N], k = 2, α=1*e-4, β=0.75

则 n/2 = 2  i+n/2 =8,  i-n/2=4

那么公式就完成在a[2,2,6]处的值除以(“上述公式括号里的值”),而括号里的是

关于【在i通道处,同样位于(x,y)处的第 4,5,6,7,8通道值的平方和】的变换式子,

这里称为式子,因为其中的超参数即是变换式子的变换方法。

 

使用:Tensorflow 提供了函数 tf.nn.lrn()来完成这个操作。

 

Ref:

DeepLearning-500-questions 深度学习基础3.6节

https://github.com/scutan90/DeepLearning-500-questions/blob/master/ch03_%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/%E7%AC%AC%E4%B8%89%E7%AB%A0_%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80.md

 

【深度学习】深入理解Batch Normalization批标准化

https://www.cnblogs.com/guoyaohua/p/8724433.html

 

深度学习的局部响应归一化LRN(Local Response Normalization)理解

https://blog.csdn.net/yangdashi888/article/details/77918311

 

tensorflow下的局部响应归一化函数tf.nn.lrn

https://blog.csdn.net/sinat_21585785/article/details/75087768

 

 

Batch Normalization 批量归一化 【全方位解释】 批量归一化(Batch Normalization),由Google于2015年提出,是近年来深度学习(DL)领域最重要的进步之一。该方法依靠两次连续的线性变换,希望转化后的数值满足一定的特性(分布),不仅可以加快了模型的收敛速度,也一定程度缓解了特征分布较散的问题,使深度神经网络(DNN)训练更快、更稳定。 阅读详情

相关推荐

【标准化方法】(1) Batch Normalization 原理解析、代码复现,附Pytorch完整代码

神经网络层数的增加会增加模型计算负担,同时也会导致模型变得难以训练。随着网络层数的增加,数据的分布方式也会随着层与层之间的变化而变化,这种现象被称为内部协变量偏移 ICS。通常解决 ICS 问题的方法是使用较小的学习率,后来为更好的解决该问题,Sergey等提出批处理标准化算法(Batch Normalization)

博观而约取,厚积而薄发 3625

BatchNormalization

本文仅介绍BatchNormalization的理解,对于原理部分,网上博客资料很详细. 在做图像的神经网络训练时,我们往往每次给神经网络喂食一个batch的数据,当然这些数据指的是一个个的image或者feature map.比如我们batch_size=32,即每次处理32张image或者 feature map.而这一个batch的数据的不能反映出该batch的分布情况,需要将其映射到某个区间上,以反映样本集的分布,这时候就需要使用normalization对数据进行处理.可以参考下面图片理解.使用了

森宝的博客 5588

Batch Normalization详解和momentum参数理解

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

ygfrancois的博客 2万+

整理学习之Batch Normalization(批标准化)

整理学习Batch Normalization

你好 2万+

Batch Normalization详解

文章目录动机单层视角多层视角什么是Batch NormalizationBatch Normalization的反向传播Batch Normalization的预测阶段Batch Normalization的作用几个问题卷积层如何使用BatchNorm?没有scale and shift过程可不可以?BN层放在ReLU前面还是后面?BN层为什么有效?参考 博客:blog.shinelee.me |...

日拱一卒 1515

区分Batch Normalization、Layer Normalization、Instance Normalization、Group Normalization

Batch Normalization、Layer Normalization、Instance Normalization、Group Normalization 本文针对神经网络中常见的Normalization Layer进行解释,以区分其中的不同。其中主要包括Batch Normalization、Layer Normalization、Instance Normalization、Group Normalization四种。 以CNN为例,假设某一卷积层包括C个kernel(即通道数为c),则卷积

For_learning的博客 742

详说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

TensorFlow之Batch Normalization

BN原理 BN应用 TensorFlow之Batch Normalization学习记录BN原理简介BN的推导过程前向算法反向传播BN的TensorFlow应用 学习记录 Batch Normalization,一个非常有用的技巧。本来想自己写这一部分的,但是在网上看到两个写得感觉特别好,感觉就没必要自己纯粹自己写了。抱着学习的目的,抄过来简单做个记录,省的下次再找了。下面是相应的链接,BN原理那...

hanhuoqwer 774

Batch Normalization 和 Layer Normalization

上图展示了一个batch size为2的Batch Normalization的计算过程,假设feature1、feature2分别是由image1、image2经过一系列卷积池化后得到的特征矩阵,feature的channel为2,那么x(1)代表该batch的所有feature的channel1的数据,同理x(2)代表该batch的所有feature的channel2的数据。然后分别计算每个通道的均值与方差。注意是一个向量不是一个值,向量的每一个元素代表着一个维度(channel)的方差。

weixin_50174671的博客 1869

归一化:Layer Normalization、Batch Normalization

Normalization 有很多种,但是它们都有一个共同的目的,那就是把输入转化成均值为 0 方差为 1 的数据。我们在把数据送入激活函数之前进行 normalization(归一化),因为我们不希望输入数据落在激活函数的饱和区。同时,使得训练数据在训练过程中尽可能的保持和测试数据拥有相同的分布。 一方面,这样可以减少数据的偏差,避免在训练过程中出现梯度爆炸或是梯度消失的问题; 另一方面,这也是确保模型测试性能的重要假设之一。 二者提出的目的都是为了加快模型收敛,减少训练时间。 LN:Layer

u013250861的博客 1308

交流伺服电机绝对式位置控制实战指南

伺服电机控制是工业自动化的核心技术之一,其核心原理是通过闭环反馈实现精确位置控制。绝对值编码器作为关键传感器,能提供单圈内的绝对位置信息,避免了增量式编码器的累计误差问题。在工程实践中,电子齿轮比配置、位置环PID调节等技术直接影响系统动态性能。本文以包装机械为典型场景,详细解析了从硬件选型到参数整定的全流程实现方案,特别是针对单圈绝对值编码器初始化和限位保护等易错环节,给出了经过验证的解决方案。通过合理设置17位编码器的电子齿轮比和优化运动控制算法,最终实现了±0.05°的高精度定位。

weixin_42531588的博客 275

Batch_Normalization 、Layer_Normalization 、Group_Normalization你分的清楚吗

这节我将为大家带来Batch_Normalization、Layer_Normalization和Group_Normalization的讲解,说讲解还是有点虚的啦,因为这节我并不准备讲。👼👼👼“不准备讲!!!?那你写个嘚~~~”大佬们先别喷啊,这节我确实不会过多的讲解,写这篇的原因是因为我发现我对Batch_Normalization的理解稍有欠缺,于是就找了找资料,然后顺道看到了Layer_Normalization和Group_Normalization,于是自己就都学了一遍。。🍁🍁🍁。.......

秃头小苏的博客 2099

AI全景之第八章第三节:时间序列分析与预测技术

摘要 时间序列分析与预测技术从传统统计模型发展到深度学习方法。传统方法包括ARIMA模型(处理趋势和季节性)、指数平滑(加权平均预测)和状态空间模型(概率框架分解)。机器学习方法通过特征工程和树模型提升非线性建模能力。深度学习方法中,RNN/LSTM处理序列依赖,TCN利用因果卷积,Transformer通过注意力机制捕获长程依赖。当前研究趋势结合神经符号方法和生成模型,以提高预测精度和可解释性。不同方法各具优势,需根据数据特性和预测需求选择。

技术引领业务创新 982

Batch Normalization和Layer Normalization的区别

网上有不少解释,包括下面这张图片 光靠图片理解还是不够,而且特别容易理解反了。这里用一个实例进行讲解。 一个非常简单的数据集,包含两个sample,3个features。 第一个sample: X1=1.0,X2=1.0, X3=1.0 第二个sample: X1=10.0,X2=10.0, X3=10.0 data = tf.constant([1.0,1.0,1.0],[10.0,10.0,...

/dev/null 933

Palantir解密:从企业数字化能力构成说起,“本体”如何破解现代企业数据应用难题?

抛开技术外壳来看,Palantir“本体”的理念内核其实并不复杂:构建一个统一、可操作的数字现实,以高效驱动决策与行动。其技术实施和产品沉淀的过程诚然是高复杂性、高难度的,但这正体现了Palantir所代表的新硅谷“All in AI+”的战略决心。对于我们而言,必须深刻认识到:企业数字化能力建设既不是高精尖技术的简单堆砌,也不是局部场景的数字化改良,而是一场企业级的“数字孪生”——关乎战略、组织与业务全域的体系能力的重塑。

SZSDQJC的博客 1675

ABAP on HANA/CDS view/AMDP 大乱炖

文章目录1. HANA的三大杀器1.1 内存式数据库1.2 多核架构1.3 列式存储1.3.1 数据压缩1.3.2 并行处理1.3.3 聚集和索引1.3.4 代码下移2. CDS 概念2.1 ABAP 开发环境2.2 OPEN SQL语句2.3 CDS 到底是啥2.4 CDS 类型2.5 创建CDS view3. CDS 实战3.1 Annotation注解3.2 Case 语句3.3 数学计算3.4 字符串表达3.5 货币转换3.6 聚集语句3.7 Join3.8 Union3.9 参数3.10 作为子C

weixin_45689053的博客 4772

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

【微信公众号采集】历史发文、评论详情、互动数据采集接口

微信公众号数据采集api接口,可获取公众号历史发文链接和文章互动数据。

YCHMBb的博客 2224

tensorflow中的batch normalization

  1.原理 公式如下: y=γ(x-μ)/σ+β 其中x是输入,y是输出,μ是均值,σ是方差,γ和β是缩放(scale)、偏移(offset)系数。 一般来讲,这些参数都是基于channel来做的,比如输入x是一个16*32*32*128(NWHC格式)的feature map,那么上述参数都是128维的向量。其中γ和β是可有可无的,有的话,就是一个可以学习的参数(参与前向后向),没有...

玥晓珖的博客 1031

基于STM32L4XX 、HAL库的ATD5984步进电机驱动器驱动程序应用设计

一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动

PP_Cottage的博客 394

手把手教你用ESP32-S3打造智能聊天机器人-立创实战派

本文将详细介绍如何利用立创ESP32-S3开发板,烧录小智AI程序,快速实现一个功能强大的聊天机器人。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 9877

Batch Normalization论文总结

Batch Normalization要解决的问题       \space\space\space\space\space\space      训练深度神经网络是复杂的,因为在训练过程中,每一层参数的更新变化,都会影响到下一层输入的分布,而且随着网络深度的增加,这种影响会不断...

ysl_ysl123的博客 1795

HTML满屏跳动的爱心(完整代码)

HTML语言实现满屏跳动爱心的完整代码。

AIGC 12万+

Batch Normalization和 Layer Normalization

Batch Normalization (BN) 和 Layer Normalization (LN) 是深度学习中常用的归一化技术,它们的主要目的是加速训练、提高模型的收敛速度和稳定性。Batch Normalization 是一种在深度神经网络中对每个小批量(mini-batch)数据进行归一化的技术。Layer Normalization 是一种对单个样本的所有特征维度进行归一化的技术。它通过对每个样本的所有特征进行标准化,使得每个样本的特征分布更加稳定。在序列任务中,LN 更为合适。

jokerMingge的博客 1090

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IEM模型,地表粗糙度模拟

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

Batch_Normalization 、Layer_Normalization 、Instance_Normalization、Group_Normalization

假设我们要把图书馆中所有的藏书放入深度学习模型中进行训练,假设图书馆中所有的书页码(Channel,C=80)一样,且每页包含的字符量一样(H,W),假设图书馆中有10000+本书,每个batch有32(N)本书,每本书为一个样本。在灰度图像中,通道数为 1。假设输入特征为[N, H, W, C],在C的每个维度上对[N, H, W]计算其均值、方差,用于该维度上的归一化操作。假设输入特征为[N, H, W, C],在N的每个维度上对[H, W,C]计算其均值、方差,用于该维度上的归一化操作。

Phoebe942的博客 1009

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

tensorflow中Batch Normalization和Layer Normalization的实现

深度学习是一门经验主义的科学,也就是说,人们总是实验效果好了之后才尝试去解释。BN和LN进来得到这么广泛的应用,也不是因为其想法多么巧妙,而是因为其效果确实好。 tensorflow1.12版本中这两个函数的实现如下: tf.contrib.layers.batch_norm( inputs, decay=0.999, center=True, scale=F...

bonjourdeutsch的博客 5341

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Embedding小结
下一篇: 快速了解ML中的正规方程
一碗风
博客等级 码龄14年 133粉丝 55原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值