NLP任务中-layer-norm比BatchNorm好在哪里

深入理解NLP中LayerNorm的原理以及LN的代码详解 在NLP中,大多数情况下大家都是用LN(LayerNorm)而不是BN(BatchNorm)。最直接的原因是BN在NLP中效果很差,所以一般不用。LN是把**normalized_shape这几个轴的元素**都放在一起,取平均值和方差的,然后对每个元素进行归一化,最后再乘以对应的$\gamma$和$\beta$(**每个元素不同**)。**LN共有N1*N2个mean和var**(假设输入数据的维度为(N1,N2,normalized_shape),normalized_shape表示多个维度)...... 阅读详情

NLP任务中,layer-norm比BatchNorm好在哪里

本文主要是讲一下,为什么NLP任务中,比如Transformer,使用LayerNorm而不是使用BatchNorm

这个问题其实很有意思,理解的最核心的点在于:为什么LayerNorm单独对一个样本的所有单词做缩放可以起到效果。

大家往下慢慢看,我说一下我自己的理解,欢迎大佬拍砖,如果觉得我说的还行,点个在看鼓励一下。

为啥BN在NLP中效果差

上一个文章有说 BN的使用场景,不适合 RNN这种动态文本模型,有一个原因是因为batch中的长度不一致,导致有的靠后面的特征的均值和方差不能估算。

这个问题其实不是个大问题,可以缓解。我们可以在数据处理的时候,使句子长度相近的在一个batch,就可以了。所以这不是为啥NLP不用BN的核心原因。

回忆一下上个文章中,BN在MLP中的应用。 BN是对每个特征在batch_size上求的均值和方差。记住,是每个特征。比如说身高,比如说体重等等。这些特征都有明确的含义。

但是我们想象一下,如果BN应用到NLP任务中,对应的是对什么做处理?

是对每一个单词!

也就是说,我现在的每一个单词是对应到了MLP中的每一个特征。

也就是默认了在同一个位置的单词对应的是同一种特征,比如:“我/爱/中国/共产党”和“今天/天气/真/不错”

如何使用BN,代表着认为 "我"和“今天”是对应的同一个维度特征,这样才可以去做BN。

大家想一下,这样做BN,会有效果吗?

不会有效果的,每个单词表达的特征是不一样的,所以按照位置对单词特征进行缩放,是违背直觉的。

layner-norm 的特点

layner-norm 的特点是什么?layner-norm 做的是针对每一个样本,做特征的缩放。换句话讲,保留了N维度,在C/H/W维度上做缩放。

也就是,它认为“我/爱/中国/共产党”这四个词在同一个特征之下,所以基于此而做归一化。

这样做,和BN的区别在于,一句话中的每个单词都可以归到一个名字叫做“语义信息”的一个特征中(我自己瞎起的名字,大家懂就好),也就是说,layner-norm也是在对同一个特征下的元素做归一化,只不过这里不再是对应N(或者说batch size),而是对应的文本长度。

上面这个解释,有一个细节点,就是,为什么每个单词都可以归到“语义信息”这个特征中。大家这么想,如果让你表达一个句子的语义信息,你怎么做?

最简单的方法就是词语向量的加权求和来表示句子向量,这一点没问题吧。(当然你也可以自己基于自己的任务去训练语义向量,这里只是说最直觉的办法)

上面这个方法就是出于每个单词都是语义信息的一部分这个insight。

引申-为啥BN在CNN可以而在NLP不可以

但是,我还想问一个问题,CNN中证明BN效果是很好的,NLP中的文本可以类比为图像,为什么BN在图像中效果好,在文本上效果差。

我是这样理解的。还是回到刚才,BN是对单词做缩放,在NLP中,单词由词向量来表达,本质上是对词向量进行缩放。词向量是什么?是我们学习出来的参数来表示词语语义的参数,不是真实存在的。

这就是NLP和图像的一个区别,图像的像素是真实存在的,像素中包含固有的信息。比如说,一张图像,最上面的一行像素,可以归为背景这个特征(这里只是为了理解,CNN做BN是基于整个feature map,而不是单独某一行像素)。

这个理解不确保正确,只是我自己的理解(记得是从一个知乎答案看到的,改天好好找一找)

简答说一下

写到这里,我写文章不是为了推导公式,因为这种推导文章太多了,而是想让大家看了我的文章之后再去看这些推导公式能够更加容易理解。

然后大家有问题的话,私信和我说,我也知道我自己写的哪里有问题,好改进。

点个在看再走呗,老弟

列一下参考资料:

各种Normalization - Mr.Y的文章 - 知乎 https://zhuanlan.zhihu.com/p/86765356

这个文章关于BN和LN如何应用讲解的比较好,就是CNHW

NLP中 batch normalization与 layer normalization - 秩法策士的文章 - 知乎 https://zhuanlan.zhihu.com/p/74516930

这个文章也还行,我在看的时候,看到中间那个图给了我点启发,就是在理解BN的时候,仅仅是在这个时候啊,我们的C,在CNN中是通道数,在理解BN的时候,理解为句子长度,这样”,每个样本通道数为 C,高为 H,宽为 W。对其求均值和方差时,将在 N、H、W上操作,而保留通道 C 的维度。具体来说,就是把第1个样本的第1个通道,加上第2个样本第1个通道 …… 加上第 N 个样本第1个通道,求平均,得到通道 1 的均值“这句话才比较好理解。

一般NLP来说,C为1吧。

模型优化之Layer Normalization - 大师兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/54530247

推荐一下这个文章,总结了对比实验:”这里我们设置了一组对照试验来对比普通网络,BN以及LN在MLP和RNN上的表现“,我还没细看,之后看。

transformer 为什么使用 layer normalization,而不是其他的归一化方法? - pymars的回答 - 知乎 https://www.zhihu.com/question/395811291/answer/1260290120

推荐这个答案,很好

为什么NLP用Layernorm而不是batchnorm? 批量归一化(Batch Normalization层归一化(Layer Normalization。 阅读详情

相关推荐

大模型面试题-为什么transformer块使用LayerNorm而不是BatchNorm

这意味着,不仅自变量 X 的分布要相同,协变量的分布也应该相同。但是,如果训练数据和测试数据的协变量分布不同,就会出现协变量偏移。所以,协变量偏移强调的是除了主要自变量 X 以外的其他影响因素(即协变量)的分布变化。它提醒我们,在训练和应用机器学习模型时,不能只关注主要自变量,还需要考虑其他相关因素的分布是否一致。NLP任务中经常需要对单个样本做推理,而BatchNorm在推理阶段使用的是训练集的均值和方差,和单个样本的分布可能有偏差。的影响,但是除了 X 以外,还有其他变量也会影响 Y。

具身机器人和通用AI 2771

自然语言处理: 第二十四章 为什么在NLP领域中普遍用LayerNorm 而不是BatchNorm?

前面讲了架构, 其中有一个层归一化layerNorm结构,最近在看不同的大模型结构中也发现会对其优化。但是似乎在CV领域貌似批次归一化BN层用的也很多,那么这两个归一化层到底有什么区别呢?为何在NLP领域几乎都是LN层,而不用BN层呢?一、What is Normalization?Normalization:规范化或标准化,就是把输入数据X,在输送给神经元之前先对其进行平移和伸缩变换,将X的分布规范化成在固定区间范围的标准分布。

victor_manches的博客 2733

2025秋招NLP算法面试真题(九)-NLP任务中-layer-norm比BatchNorm好在哪里

layer-norm比BatchNorm好在哪里

weixin_41496173的博客 377

Batch Normalization和Layer Normalization

atch Normalization 也是可以用的,但为什么不用,我们来分析一下问题。 我们回到RNN,RNN其实也能够使用Batch Normalization ,但它为什么不用?是因为变长吗,变长序列我们也是能够padding到同一个长度进行训练的,至于为什么不用,是因为BN对一个Batch中对应位置的分量进行归一化,这就存在一定的问题,因为一个Batch中对应位置的分量不一定有意义,它可能是padding的结果。 实际上LSTM训练的时候我们会把一个batch中的序列按照长度降序,长度短的

smartcat2010的博客 748

WSL2迁移后用户名不见了?一招教你快速恢复Ubuntu22.04默认用户

本文针对WSL2迁移后Ubuntu 22.04默认用户名丢失的常见问题,提供了详细的诊断与修复方案。通过分析迁移底层逻辑,指导用户使用`ubuntu2204.exe config --default-user`命令或配置`/etc/wsl.conf`文件快速恢复用户身份,并涵盖权限修复、冲突解决及自动化迁移脚本等进阶内容,确保子系统迁移后环境完整可用。

web39explorer的博客 558

我花3年踩坑总结的C#上位机开发指南:从零基础到项目落地(附实战案例)

串口乱码:编码格式不匹配,一定要和设备端确认;PLC连接超时:检查IP地址和端口,确保上位机和PLC在同一网段;界面卡死:耗时操作没开线程,WinForm用BackgroundWorker,WPF用Task;数据解析错误:寄存器地址算错(Modbus地址从0还是1开始);Modbus数据丢包:加CRC校验,重要数据重发机制;WPF绑定不生效:忘记实现INotifyPropertyChanged;项目打包失败:缺少依赖DLL,用Dependency Walker检查;现场环境不兼容。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1843

一些在NLP的面试中提问频率非常高的问题

作者:Pratik Bhavsar 编译:ronghuaiyang导读在NLP的面试中提问频率非常高的问题。练习NLP是一回事,破解面试是另一回事。对NLP人员的面试与一般的数...

fengdu78的博客 549

EfficientNet中的MBConv模块详解:为什么它能如此高效?

本文深度解析了EfficientNet中的MBConv模块,详细介绍了其核心设计理念、效率优化技术和复合缩放理论。MBConv通过深度可分离卷积、倒残差结构和注意力机制三大关键技术,实现了计算效率与模型性能的平衡,成为高效网络结构设计的典范。

tcp8optimizer的博客 350

Batch Norm vs Layer Norm:为什么 Transformer 更适合用 Layer Norm?

Layer Norm 的灵活性和稳定性,使其成为 Transformer 和 NLP 任务的首选归一化方法,在深层序列模型中尤为重要。

阿正的梦工坊 2108

用MATLAB从零实现六足机器人步态仿真:交替三角与波动步态保姆级教程

本文详细介绍了如何使用MATLAB从零实现六足机器人的两种经典步态仿真:交替三角支撑步态和波动步态。通过参数定义、相位设置、运动轨迹生成和三维可视化等步骤,帮助读者掌握六足机器人步态规划的核心技术。教程包含完整代码和详细解析,适合机器人爱好者和相关专业学生学习实践。

weixin_26765363的博客 228

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8851

BatchNorm和LayerNorm——通俗易懂的理解

以通俗易懂的方式解释了BatchNorm和LayerNorm的原理,并指出它们的区别

WSLGN的博客 6万+

Xilinx系FPGA学习笔记(三)Vivado的仿真及ILA使用

接着学习vivado的使用方法。

贾saisai的博客 2546

详解三种常用标准化 Batch Norm & Layer Norm & RMSNorm

详细说明 Batch Norm / Layer Norm / RMSNorm

佚失的诗篇 1万+

【RBF预测】基于粒子群算法优化RBF神经网络实现数据回归预测含Matlab源码

1 简介 原油含水率预测对于确定油井水,油层位以及估计原油产量有着非常重要意义.BP神经网络是最近常用的原油含水率预测方法,然而,由于BP神经网络存在容易陷入局部极小值,收敛速度慢等问题,影响了其预测的实用性和准确性,对此,提出基于粒子群优化RBF神经网络(PSO-RBFNN)的原油含水率预测方法,粒子群优化算法用于RBF神经网络参数优化.在分析原油含水率预测的影响因素基础上,建立粒子群优化RBF神经网络的原油含水率预测模型.实验结果表明,在原油含水率预测中,基于粒子群优化RBF神经网络比BP神经网络有着

qq_59747472的博客 1234

Android Camera MTK框架

Camera简介: 虽然前文说道Android在5.0之后就推出了Camera2 API,但是各个厂家的基本未适配,导致目前市场上大部分机型使用的仍然是Camera1 API。PS:Android 9.0 Google强制要求各个平台厂商(高通/MTK/华为等)支持Camera2,不再兼容Camera1。 ...

weixin_49303682的博客 5507

Layer Norm 在序列特征中的鲁棒性: Understanding the Robustness of Layer Norm for Sequence Features (中英双语)

Robustness refers to a system's ability to perform well despite dynamic changes in input distribution, noise, or inconsistencies in the data

阿正的梦工坊 989

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NLP任务为什么使用LayerNorm,而不是BatchNorm

图1为一个batch_size(N个)句子的语义特征张量 三维图.图1。

weixin_42449201的博客 391

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jre9下载 jdk9

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

Transformer中为什么是layer norm不是batch norm

讨论一下为什么transformer中用layer norm前序知识:常见的归一化层的工作原理之前已经讲过各个常见的归一化层了,不了解的可以去看看这篇文章。首先咱们得了解在NLP中,如果输入的几个句子不是等长的,需要使用Padding技术或者Truncation技术来使句子等长。因此对于短文本来说,为了对齐长句子,剩下的位置会被填充零向量,即 [0, 0, 0, ..., 0]。它对应的vector可能是这样用“0值”padding后的结果因此对于文本来说,这些embedding是没有意义的。

wlxsp的博客 1463

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Batch Norm vs Layer Norm vs RMS Norm:大模型时代如何选择归一化方法?

本文深度解析了Batch Norm、Layer Norm和RMS Norm三种归一化方法在大模型训练中的核心差异与选型策略。重点探讨了RMS Norm作为Layer Norm的高效简化版本,如何通过移除均值中心化步骤,在LLaMA、GPT等大语言模型中实现显著的计算效率提升,成为追求极致训练吞吐量时的优选方案。文章结合实战场景,为CV、NLP及超大规模LLM训练提供了清晰的归一化层选型指南。

weixin_29089057的博客 248

Batch Norm和Layer Norm

Batch Normalization(BN)和Layer Normalization(LN)是深度学习中两种核心的归一化技术,它们的核心区别在于归一化的维度和适用场景。BN和LN的核心差异源于归一化维度的选择,BN适合稳定、大批量的CV任务,而LN更适合动态、小批量的序列建模。:每个特征通道有独立的缩放参数(γ)和平移参数(β),参数数量与通道数(C)相关。:BN是“竖切”(跨样本同特征归一化),LN是“横切”(单样本所有特征归一化)。上对每个特征通道进行归一化。),LN会计算每个样本(B×T)的。

m0_38122847的博客 929

GAN相关网络用什么归一化方法:BatchNorm?Weight Norm?Layer Norm?

神经网络中各种归一化方法分析与介绍

qq_36561737的博客 2471

BERT用的LayerNorm可能不是你认为的那个Layer Norm?

©作者 | 王坤泽单位 | 悉尼大学研究方向 | NLP有关 Batch norm 和 Layer norm 的比较可以算上是算法领域的八股文了,为什么 BERT 不用 batch norm 而用 layer norm 的问题都被问烂了,知乎上随便一搜都有很多人讲解 BN 和 LN 的区别。通常来说大家都会给这张图:▲ BN vs LN大家会说,针对 CV 和 NLP 两种问题,这里的三个维度表示...

Paper weekly 3210

【机器学习】LayerNorm & BatchNorm的作用以及区别

使用Normalization的目的 当我们使用梯度下降法做优化时,随着网络深度的增加,输入数据的特征分布会不断发生变化,为了保证数据特征分布的稳定性,会加入Normalization。从而可以使用更大的学习率,从而加速模型的收敛速度。同时,Normalization也有一定的抗过拟合作用,使训练过程更加平稳。 具体地,Normalization的主要作用就是把每层特征输入到激活函数之前,对它们进行normalization,使其转换为均值为1,方差为0的数据,从而可以避免数据落在激活函数的饱和区,以减少梯

敲代码的quant的博客 3万+

LayerNorm vs BatchNorm:深度学习中的归一化技术详解

BatchNorm和LayerNorm是深度学习中两种核心归一化方法。BatchNorm在batch维度上归一化,适用于计算机视觉任务和大batch场景,但依赖batch大小且训练推理不一致。LayerNorm在特征维度上归一化,适合自然语言处理、小batch和变长序列,保持特征关系且训练推理一致。关键差异在于:BatchNorm保留样本间关系但破坏特征间关系,LayerNorm则相反。实际选择需考虑任务类型(CV优先BatchNorm,NLP优先LayerNorm)、数据特性和训练条件(小batch建议L

qq_61817722的博客 1286

BatchNorm、LayerNorm、RMSNorm

BatchNorm是对不同样本间的同一维特征做归一化,即标准化某一特征整体的分布 LayerNorm是对同一样本的不同维特征间做归一化,即标准化某一样本特征的分布

yaohaishen的专栏 1384
上一篇: VIT-如何将Transformer更好的应用到CV领域
下一篇: 史上最全Transformer面试题
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值