当前位置: 首页 > article >正文

LayerNorm vs RMSNorm 技术对比

1. 核心概念

LayerNorm (层归一化)

  • 思想:对单个样本的所有特征维度进行归一化
  • 目标:使每个样本的特征分布 μ = 0 \mu=0 μ=0 σ = 1 \sigma=1 σ=1
  • 特点:同时调整均值和方差

RMSNorm (均方根归一化)

  • 思想:基于均方根的简化归一化方法
  • 目标:仅通过缩放调整特征幅度
  • 特点:不调整均值,仅缩放方差

2. 数学表达

LayerNorm公式

μ = 1 d ∑ i = 1 d x i σ = 1 d ∑ i = 1 d ( x i − μ ) 2 x ^ i = x i − μ σ + ϵ y i = γ i x ^ i + β i \begin{aligned} \mu &= \frac{1}{d}\sum_{i=1}^d x_i \\ \sigma &= \sqrt{\frac{1}{d}\sum_{i=1}^d (x_i - \mu)^2} \\ \hat{x}_i &= \frac{x_i - \mu}{\sigma + \epsilon} \\ y_i &= \gamma_i \hat{x}_i + \beta_i \end{aligned} μσx^iyi=d1i=1dxi=d1i=1d(xiμ)2 =σ+ϵxiμ=γix^i+βi

RMSNorm公式

σ = 1 d ∑ i = 1 d x i 2 x ^ i = x i σ + ϵ y i = γ i x ^ i \begin{aligned} \sigma &= \sqrt{\frac{1}{d}\sum_{i=1}^d x_i^2} \\ \hat{x}_i &= \frac{x_i}{\sigma + \epsilon} \\ y_i &= \gamma_i \hat{x}_i \end{aligned} σx^iyi=d1i=1dxi2 =σ+ϵxi=γix^i

3. 关键差异对比

特性LayerNormRMSNorm
均值调整 ✓ \checkmark × \times ×
方差调整标准差归一化均方根归一化
计算复杂度较高较低
可学习参数 γ , β \gamma,\beta γ,β通常仅 γ \gamma γ
适用场景对分布敏感的任务高效计算场景

4. 优缺点分析

LayerNorm

  • 优点
    • 分布调整更全面
    • 适合精细控制的任务
  • 缺点
    • 计算开销较大

RMSNorm

  • 优点
    • 计算效率高(省去均值计算)
    • 适合大规模模型
  • 缺点
    • 忽略均值可能影响效果

5. 实现代码

PyTorch实现

# LayerNorm
import torch.nn as nn
layernorm = nn.LayerNorm(feature_dim)# RMSNorm
class RMSNorm(nn.Module):def __init__(self, dim):super().__init__()self.scale = nn.Parameter(torch.ones(dim))def forward(self, x):rms = x.pow(2).mean(-1, keepdim=True).sqrt() + 1e-8return x / rms * self.scale

备注

有问题随时交流~~

相关文章:

LayerNorm vs RMSNorm 技术对比

1. 核心概念 LayerNorm (层归一化) 思想:对单个样本的所有特征维度进行归一化目标:使每个样本的特征分布 μ 0 \mu0 μ0, σ 1 \sigma1 σ1特点:同时调整均值和方差 RMSNorm (均方根归一化) 思想:基于均方根的简…...

可视化图解算法37:序列化二叉树-II

1. 题目 描述 请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。 二叉树的序列化(Serialize)是指:把一棵二叉树按照某种遍…...

C++GO语言微服务和服务发现②

01 创建go-micro项目-查看生成的 proto文件 02 创建go-micro项目-查看生成的main文件和handler ## 创建 micro 服务 命令:micro new --type srv test66 框架默认自带服务发现:mdns。 使用consul服务发现: 1. 初始consul服务发现&…...

【Web前端开发】CSS基础

2.CSS 2.1CSS概念 CSS是一组样式设置的规则,称为层叠样式表,用于控制页面的外观样式。 使用CSS能够对网页中元素位置的排版进行像素控制,实现美化页面的效果,也能够做到页面的样式和结构分离。 2.2基本语法 通常都是&#xff…...

Google LLM prompt engineering(谷歌提示词工程指南)

文章目录 基本概念AI输出配置:调整AI的回答方式输出长度温度(Temperature)Top-K和Top-P 提示技术:让AI更好地理解你零样本提示(Zero-shot)少样本提示(Few-shot)系统提示(…...

接口出现 请求参数格式错误 的解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn Java基本知识: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理…...

Git实战经验分享:深入掌握git commit --amend的进阶技巧

一、工具简介 git commit --amend是Git版本控制系统的核心补救命令,主要用于修正最近一次提交的元数据。该命令不会产生新的提交记录,而是通过覆盖原提交实现版本历史的整洁性,特别适合在本地仓库进行提交优化。 二、核心应用场景 提交信息…...

PTA:jmu-ds-最短路径

给定一个有向图&#xff0c;规定源点为0&#xff0c;求源点0到其他顶点最短路径。###你要实现的 函数接口定义&#xff1a; void Dijkstra(MGraph g,int v);//源点v到其他顶点最短路径 裁判测试程序样例&#xff1a; #include <stdio.h> #include <iostream> …...

Uniapp编写微信小程序,使用canvas进行绘图

一、canvas文档&#xff1a; https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial 二、数据绘制&#xff08;单位是像素&#xff09;&#xff1a; 1、绘制文本&#xff1a; 文字的长度超过设置的最大宽度&#xff0c;文字会缩在一起 ① 填充文本&#xf…...

WEB UI自动化测试之Pytest框架学习

文章目录 前言Pytest简介Pytest安装Pytest的常用插件Pytest的命名约束Pytest的运行方式Pytest运行方式与unittest对比主函数运行命令行运行执行结果代码说明 pytest.ini配置文件方式运行&#xff08;推荐&#xff09;使用markers标记测试用例 pytest中添加Fixture&#xff08;测…...

深入理解 iOS 开发中的 `use_frameworks!`

在使用 CocoaPods 管理 iOS 项目依赖时&#xff0c;开发者经常会在 Podfile 文件中看到一个配置选项&#xff1a;use_frameworks!。本文将详细介绍这个配置选项的含义&#xff0c;以及如何决定是否在项目中使用它。 一、什么是 use_frameworks! 在 CocoaPods 中引入第三方库时…...

矩阵置零算法讲解

矩阵置零算法讲解 一、问题描述 给定一个 (m \times n) 的矩阵,如果一个元素为 (0) ,则将其所在行和列的所有元素都设为 (0) 。要求使用原地算法,即在不使用额外矩阵空间的情况下完成操作。 二、解题思路 暴力解法 最直观的想法是遍历矩阵,当遇到 (0) 元素时,直接将其…...

二本计算机,毕业=失业?

我嘞个豆&#xff0c;二本计算机&#xff0c;毕业即失业&#xff1f;&#xff01; 今天咱们聊聊普通院校计算机专业的学生未来的发展方向。有些话可能不太中听&#xff0c;但希望大家能理性看待。 首先得承认&#xff0c;对于普通双非和二本的学生来说&#xff0c;就业率加上…...

Java 并发编程挑战:从原理到实战的深度剖析与解决方案

Java 作为企业级应用开发的主流语言&#xff0c;其多线程能力是支撑高并发场景的核心。然而&#xff0c;线程安全、死锁、性能瓶颈等问题仍是开发者难以绕过的暗礁。本文将从 JVM 内存模型、并发工具链到实际案例&#xff0c;系统性揭示 Java 并发编程的挑战与解决方案&#xf…...

机器学习第六讲:向量/矩阵 → 数据表格的数学表达,如Excel表格转数字阵列

机器学习第六讲&#xff1a;向量/矩阵 → 数据表格的数学表达&#xff0c;如Excel表格转数字阵列 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;…...

[docker基础二]NameSpace隔离实战

目录 一 实战目的 二 基础知识 1)dd 命令详解 2)mkfs命令详解 3)df命令详解 4)mount 命令详解 5)unshare命令详解 三 实战操作一(PID隔离) 四 实战操作二(MOunt隔离) 1&#xff09;创建 Mount 隔离进程 2&#xff09;在新进程里边&#xff0c;创建空白文件&#…...

Day22打卡-复习

复习日 仔细回顾一下之前21天的内容&#xff0c;没跟上进度的同学补一下进度。 作业&#xff1a; 自行学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 泰坦尼克号人员生还预测https://www.kaggle.com/competitions/titanic/overview K…...

Express知识框架

一、核心概念 1. Express 简介 Node.js 的 Web 框架&#xff0c;提供 HTTP 服务器封装 轻量级但灵活&#xff0c;支持中间件扩展 基于路由&#xff0c;支持 RESTful API 和传统 MVC 架构 无内置 ORM 或模板引擎&#xff0c;但可集成第三方库 2. 核心对象 express() - 创建…...

uniapp + vue3 + 京东Nut动作面板组件:实现登录弹框组件(含代码、案例、小程序截图)

uniapp + vue3 + 京东Nut动作面板组件:实现登录弹框组件(含代码、案例、小程序截图) 代码示下,不再赘述。 动作面板组件:https://nutui-uniapp.netlify.app/components/feedback/actionsheet.html 项目背景 业务需求 描述: uniapp + vue3 + 京东Nut框架:实现登录弹框组…...

C++类和对象--中阶

C类和对象中阶 01. 类的6个默认成员函数 在 C 中&#xff0c;类有 6 个特殊的默认成员函数&#xff08;不是 6 个构造函数&#xff09;&#xff0c;它们会在特定情况下由编译器自动生成。包括构造函数&#xff0c;析构函数&#xff0c;拷贝构造和赋值运算符重载&#xff0c;取…...

OSPF的四种特殊区域(Stub、Totally Stub、NSSA、Totally NSSA)详解

OSPF的四种特殊区域&#xff08;Stub、Totally Stub、NSSA、Totally NSSA&#xff09;通过限制LSA的传播来优化网络性能&#xff0c;减少路由表规模。以下是它们的核心区别&#xff1a; 1. Stub 区域&#xff08;末梢区域&#xff09; 允许的LSA类型&#xff1a;Type 1-3&#…...

数据签名在区块链中的独特应用与挑战

随着信息技术的飞速发展&#xff0c;分布式系统因其高效、可靠、可扩展等显著优点&#xff0c;在众多领域得到了极为广泛的应用。分布式系统通过网络将多个独立的计算节点连接在一起&#xff0c;协同完成复杂的任务&#xff0c;这种架构使得系统具备了强大的容错能力和负载均衡…...

数据可视化大屏——物流大数据服务平台(二)

代码分析&#xff1a; 物流大数据平台代码分析 这是一个基于 Bootstrap 和 ECharts 构建的物流大数据平台前端页面&#xff0c;设计采用了经典的三栏布局&#xff0c;主要展示河南省及全国的物流数据可视化内容。下面从多个维度进行分析&#xff1a; 1. 页面结构分析 整体采…...

5倍无损压缩+50 倍速转换HD Video 4K/8K 视频处理

各位视频处理小达人们&#xff0c;我跟你们说啊&#xff01;有个超厉害的专业视频处理软件&#xff0c;叫HD Video Converter Factory Pro&#xff0c;简称HDVC&#xff0c;是WonderFox公司开发的。这软件功能老强大了&#xff0c;下面我给你们详细唠唠&#xff01; 先说说它的…...

Vue学习百日计划-Deepseek版

阶段1&#xff1a;基础夯实&#xff08;Day 1-30&#xff09; 目标&#xff1a;掌握HTML/CSS/JavaScript基础&#xff0c;理解Vue核心概念和基础语法。 每日学习内容&#xff08;2小时&#xff09;&#xff1a; HTML/CSS&#xff08;Day 1-10&#xff09; 学习HTML标签语义化…...

Maven 处理依赖冲突

Maven处理依赖冲突 什么是依赖冲突&#xff1f;如何解决&#xff1f;Maven自动处理依赖冲突的规则路径优先原则第一声明优先原则注意 子模块覆盖父模块父模块声明dependency子模块覆盖dependency父模块声明dependencyManagement 子模块覆盖dependency父模块声明dependencyManag…...

5.12第四次作业

实验要求&#xff1a;完成上图内容&#xff0c;要求五台路由器的环回地址均可以相互访问 AR1 AR2 AR3 AR4 AR5 AS 200 ospf配置 AR2 AR3 AR4 BGP配置 AR1&#xff08;AS100&#xff09; AR2&#xff08;AS200&#xff09; AR4 AR5&#xff08;AS300&#xff09; 结果...

【Lattice FPGA 开发】Diamond在线调试Reveal逻辑乱跳的解决

在Vivado中在always块中写逻辑时如果出现always块中的异步复位敏感词在块内部未使用的情况&#xff0c;如下例的rst&#xff1a; always (posedge clk or posedge rst) begin if(~tx_sense_flag)o_rd_adr < d1;else if((o_rd_adr d94) & (bit_cnt d7))o_rd_adr <…...

Go语言——kratos微服务框架使用

文章目录 一、安装依赖二、创建项目三、初始化项目四、使用git_bash命令终端运行命令五、创建自己的项目1、修改app.proto3、internal/service/app.go4、修改internal/service/service.go文件5、创建internal/biz/content.go文件6、修改internal/biz/biz.go文件7、创建internal…...

动作识别笔记

一些casual paper review 动作识别Input 从前:RGB,然后 RGB+2D pose 接着各种手工modalities,现在是纯pose 但是包含了 多人 interactive的pose Graph from skeleton verticies: keypoints,Edges: just joint btw keypoints一个训练的sample 是一个 panoramic graph, con…...