news 2026/2/27 2:48:50

面试-RMSNorm和LayerNorm的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面试-RMSNorm和LayerNorm的区别

1 LayerNorm

背景:

在神经网络中,每一层输出都将作为下一层的输入。

  • 问题:在训练过程中,前一层参数的微小更新,所带来的输出会导致后一层输入的分布发生剧烈变化。这就是层与层之间的动态失调。俗称内部协变量偏移(Internal Covariate Shift)
  • 现象:比如,第一层参数稍微改了一点点(比如权重从0.10.10.1变成0.110.110.11)。经过非线性激活函数放大,第二层的输入分布就会发生剧烈抖动。经过非线性激活函数放大,第二层的输入分布就会发生剧烈抖动。

梯度消失与爆炸: 如果没有归一化,神经元的输出可能非常大。如果你使用的是 tanh 或 sigmoid 激活函数,输入太大就会进入“饱和区”,梯度几乎为 0,模型就“僵死”了。LayerNorm 把数值强行拉回均值 0、方差 1 的范围,确保它们正好落在激活函数最敏感(斜率大)的区域。

例子:
假设你正在训练一个深层网络,其中一层有一个神经元,它使用的是 Sigmoid 激活函数。

  • Sigmoid 公式:f(x)=11+e−xf(x) = \frac{1}{1 + e^{-x}}f(x)=1+ex1
  • 求导:f(x)(1-f(x))
  • 它的特性:当xxx000附近时,斜率(梯度)最大(约0.250.250.25);当x>5x > 5x>5x<−5x < -5x<5时,曲线变得非常平坦,斜率接近 0。

情况 A:没有归一化(进入饱和区)
假设由于前几层的权重初始化得比较大,或者没有控制好,传到这一层的输入向量为:
x=[10.0,12.0,11.0,9.0]x = [10.0, 12.0, 11.0, 9.0]x=[10.0,12.0,11.0,9.0]

  • 输出:f(10.0)≈0.99995f(10.0) \approx 0.99995f(10.0)0.99995f(12.0)≈0.99999f(12.0) \approx 0.99999f(12.0)0.99999你会发现,无论输入是 10 还是 12,输出几乎全是 1。
  • 梯度计算:Sigmoid 的导数是f(x)(1−f(x))f(x)(1 - f(x))f(x)(1f(x))。对于x=10x=10x=10,梯度≈0.99995×(1−0.99995)=0.000049\approx 0.99995 \times (1 - 0.99995) = 0.0000490.99995×(10.99995)=0.000049
  • 后果: 这个梯度太小了!在反向传播时,这个微弱的信号传到前一层几乎就消失了。模型“僵死”了,因为它觉得自己已经做得很好了(输出都是 1),或者它根本不知道该往哪改。
公式:

为了解决内部协变量偏移这一问题,LayerNorm 通过将每一层神经元的输出强制转化为“均值为 0、方差为 1”的标准分布,使得不管前面的层怎么折腾,传给后层的信号始终是平稳、可预测的。

  • 如果没有 LN:数值可能非常大(如 100)或非常小(如 0.001)。如果后面接的是 Sigmoid 或 Tanh 激活函数,这些数值会落入极其平坦的“饱和区”,导致梯度几乎为 0。

  • 有了 LN:它把数值强行拽回到 0 附近。

  • 结果:激活函数的斜率在这里最大,梯度能够顺畅回传,防止了模型因“梯度消失”而彻底僵死。公式如下:

  • xix_ixi:输入向量xxx中的第iii个元素(特征)。

  • iii:特征的索引,取值范围是[1,d][1, d][1,d]。注意,LayerNorm 是在特征维度(最后一个维度)上做归一化,而不是在 Batch 维度。

  • nnn(或ddd):向量的长度(隐藏层维度)。

  • σ2+ϵ\sqrt{\sigma^2 + \epsilon}<

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 8:51:12

Python全球酒店预订数据分析课程(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

Python全球酒店预订数据分析课程(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 论文包含随机森林、XGBoost、逻辑回归模型&#xff0c;约550行代码11万条数据&#xff0c;带完整数据集和分析报告 用City Hotel和Resort Hotel…

作者头像 李华
网站建设 2026/2/26 14:26:04

吐血推荐!专科生必用AI论文平台TOP10:开题报告神器大测评

吐血推荐&#xff01;专科生必用AI论文平台TOP10&#xff1a;开题报告神器大测评 2026年专科生论文写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着AI技术的不断发展&#xff0c;越来越多的专科生开始借助AI论文平台提升写作效率、优化论文结构。然而&#xff0c…

作者头像 李华
网站建设 2026/2/24 3:36:36

渲染慢到通宵,如何提高渲染速度? 这套技巧3 步搞定!

作为三维动画创作者&#xff0c;谁没经历过这些崩溃瞬间&#xff1f;渲染到凌晨软件闪退、单帧耗时超2小时、电脑配置拉满仍卡顿预览……其实渲染慢未必是硬件不够顶&#xff0c;找对方法就能让效率翻倍。本文整合实操技巧与专业参数&#xff0c;兼顾新手易上手性和进阶需求&am…

作者头像 李华
网站建设 2026/2/25 1:27:54

【双指针】接雨水

求解代码 public long maxWater(int[] arr) {// 数组长度<3&#xff0c;无法形成凹坑接水&#xff0c;直接返回0if (arr null || arr.length < 3) {return 0;}int left 0; // 左指针int right arr.length - 1; // 右指针long ans 0; // 总积水量int leftMax arr[le…

作者头像 李华
网站建设 2026/2/26 22:55:05

【鸿蒙PC命令行适配】xxHash 在鸿蒙 PC 上的适配移植实战与部署详解

文章目录【鸿蒙PC命令行适配】xxHash 在鸿蒙 PC 上的适配移植实战与部署详解前言一、xxHash 在鸿蒙 PC 中的定位二、整体适配思路三、前置条件&#xff1a;OHOS SDK 与工具链准备四、下载与准备 xxHash 源码五、核心&#xff1a;交叉编译 xxHash5.1 使用 Makefile 标准交叉编译…

作者头像 李华
网站建设 2026/2/27 20:26:34

毕业救星!6款免费降ai率工具亲测,一键让论文AI率从80%降至5%

即将毕业的大学生们&#xff01;是否也在深夜对着电脑屏幕发呆&#xff0c;你的论文初稿明明字字心血&#xff0c;却被冰冷的AI检测系统无情标红&#xff0c;却被系统判定AI率超标&#xff0c;这感觉太憋屈了。 更绝望的是&#xff0c;为了“洗清嫌疑”&#xff0c;你开始手动…

作者头像 李华