10分钟搞清楚为什么Transformer中使用LayerNorm而不是BatchNorm

1. Norm(Normalization)

首先,LayerNorm和BatchNorm的Norm是Normalization的缩写,不是Norm-范数。

Normalization在统计学中一般翻译为归一化,还有类似的是Standardization,一般翻译成标准化。这两个概念有什么区别呢?

归一化是将数据缩放到0-1之间,标准化是将数据缩放到均值为0,方差为1的正态分布。

请添加图片描述

有时候Normalization和Standardization会混淆,注意看清楚即可,不纠结细节。

2. BatchNorm

BatchNorm,(Batch Normalization),批归一化,旨在提高神经网络的训练速度、稳定性和性能。它由 Sergey Ioffe 和 Christian Szegedy 于 2015 年提出。BatchNorm 主要解决的问题是在训练深度神经网络时出现的内部协变量偏移(Internal Covariate Shift),即网络中各层输入数据分布的变化。

内部协变量偏移是指,随着网络层次的加深,每一层的输入数据(即前一层的输出)的分布可能会发生变化,这可能会导致训练过程中的梯度问题,比如梯度消失或梯度爆炸,从而影响网络的收敛速度和稳定性。

请添加图片描述

BatchNorm 的工作原理如下:

  • 归一化:在训练过程中,BatchNorm 对每个小批量(mini-batch)的数据进行归一化处理,即计算该批量数据的均值和方差,并使用这些统计量将数据标准化,使得数据的均值为 0,方差为 1。

  • 缩放和偏移:归一化后的数据会经过两个可学习的参数,即缩放因子(gamma)和偏移因子(beta),这两个参数允许网络在训练过程中学习到最佳的归一化方式。

  • 应用:BatchNorm 通常在神经网络的层之间应用,特别是在卷积层或全连接层之后,激活函数之前。

在传统机器学习中,我们也经常会用到类似的方法:将某一个特征(batch维度)的数据归一化或者标准化来提高模型的泛化能力

3. LayerNorm

Layer Normalization(层归一化,简称LayerNorm)是一种在深度学习中用于稳定神经网络训练和提高性能的技术。它是由 Jimmy Lei Ba、Jamie Ryan Kiros、Geoffrey E. Hinton 在 2016 年提出的。LayerNorm 与 Batch Normalization 类似,都旨在减少内部协变量偏移,但它们在归一化的具体实现上有所不同。

LayerNorm 的主要思想是对神经网络的每一层(而不是每一个小批量)进行归一化处理。具体来说,LayerNorm 会计算单个样本在其所在层的所有激活值的均值和方差,并使用这些统计量来归一化该样本的激活值。这种方法不依赖于小批量统计量,因此可以减少 BatchNorm 中的噪声问题,并允许网络使用更小的小批量大小进行训练。

请添加图片描述

LayerNorm 的工作原理如下:

  • 归一化:对于网络中的每一层,LayerNorm 会计算该层所有激活值的均值和方差。然后,使用这些统计量将激活值归一化,使得每个样本的激活值的均值为 0,方差为 1。

  • 缩放和偏移:与 BatchNorm 类似,归一化后的数据会经过两个可学习的参数,即缩放因子(gamma)和偏移因子(beta),这两个参数允许网络在训练过程中学习到最佳的归一化方式。

  • 应用:LayerNorm 可以应用于神经网络的任何层,包括卷积层和循环层,通常放在激活函数之前。

4. 为什么Transformer中使用LayerNorm而不是BatchNorm

Normalization技术旨在应对内部协变量偏移问题,它的核心在于将数据调整到一个统一的标准,以便进行有效的比较和处理。

为了实现这一目标,我们需要确保参与归一化的数据点在本质上是可比的。(记住这句话就可以了)

  • Batch Normalization(BatchNorm):这是一种对整个批次数据进行归一化的方法。具体来说,BatchNorm关注的是批次中每一列的数据,这些数据代表了不同样本的同一个特征。因为这些特征在统计上是相关的,所以它们可以被合理地放在一起进行归一化处理。这就像是在同一个班级里,比较不同学生的同一科目成绩,因为这些成绩都在相同的评分标准下,所以可以直接比较。

  • Layer Normalization(LayerNorm):与BatchNorm不同,LayerNorm适用于那些在不同样本之间难以直接比较的情况,如Transformer中的自注意力机制。在这些模型中,每个位置上的数据代表了不同的特征,因此直接归一化可能会失去意义。LayerNorm的解决方案是对每个样本的所有特征进行单独归一化,而不是基于整个批次。这就像是评估每个学生在所有科目中的表现,而不是仅仅关注单一科目,这样可以更全面地理解每个学生的整体表现。

请添加图片描述

参考

[1] Do Standardization and normalization transform the data into normal distribution?

[2] Build Better Deep Learning Models with Batch and Layer Normalization

欢迎关注我的GitHub和微信公众号,来不及解释了,快上船!

GitHub: LLMForEverybody

仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144750.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vue2 + moment 实现日历,并带有上个月和下个月日期的日历

在 Vue 2 中使用 moment 库绘制一个带有上个月和下个月日期的日历,可以通过以下步骤实现。这个日历将显示当前月份的天数,以及前一个月和下一个月的部分日期(通常为了让日历对齐为6行,每行7天)。 主要步骤&#xff1a…

海睿思ABI——不只是BI,更多的是数据和智能

在当今这个数据洪流席卷各行各业的数字化时代,企业BI的建设已不再是可选项,而是驱动企业转型升级、实现精细化运营的必由之路。传统BI通过临时数据集直连业务系统,仅能展示预设报表和仪表盘,难以集成异构数据源,适应业…

【数学二】函数概念、常用函数、函数四大性质

考试要求 1、理解函数的概念,掌握函数的表示法,并会建立应用问题的函数关系. 2、了解函数的有界性、单调性、周期性和奇偶性. 3、理解复合函数及分段函数的概念、了解反函数及隐函数的概念。 4、掌握基本初等函数的性质及其图形、了解初等函数的概念。…

SpringCloud从零开始简单搭建 - JDK17

文章目录 SpringCloud Nacos从零开始简单搭建 - JDK17一、创建父项目二、创建子项目三、集成Nacos四、集成nacos配置中心 SpringCloud Nacos从零开始简单搭建 - JDK17 环境要求:JDK17、Spring Boot3、maven。 那么,如何从零开始搭建一个 SpringCloud …

PyQGIS开发 3 基础功能开发

PyQGIS开发 3 基础功能开发 1 添加图层树与地图视图 1.1 添加控件 1.2 Python代码 from PyQt5.QtCore import QMimeData from qgis.PyQt.QtWidgets import QMainWindow from qgis._core import QgsMapLayer, QgsRasterLayer, QgsVectorLayer from qgis.core import QgsProje…

美联储降息引爆股市,标普500指数逼近历史新高

在美联储宣布大幅降息后,股市迎来了强劲反弹。投资者信心大增,此前他们就预期美联储会降息0.5个百分点。周四的股市涨幅让标普500指数接近历史收盘最高点。 周四,标普500指数有望刷新历史纪录,此前美联储的大幅降息为市场注入了活…

基于STM32的智能门禁系统(指纹、蓝牙、刷卡、OLED、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32单片机,六个按键,分别代表指纹、蓝牙、刷卡的正确进门与错误进门; 比如第一个按键按下,表示指纹正确,OLED显示指纹正确&#x…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核启动】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核(LiteOS-M) 轻量系统内核&#…

faiss安装 (CPU版本)

faiss版本 faiss-v1.7.4 cd faiss-v1.7.4cmake -B build . -DBUILD_TESTINGOFF -DFAISS_ENABLE_GPUOFF -DFAISS_ENABLE_PYTHONOFFmake -C build -j faiss; 默认安装路径如下 -- Installing: /usr/local/lib64/libfaiss.a -- Installing: /usr/local/include/faiss…

跨境平台通用测评技巧:解锁Temu、亚马逊等平台的销量密码

在当今竞争激烈的跨境电商行业,测评补单虽被视为“公开的秘密”,但无论是消费者还是平台方对此普遍持有反感态度。对于新手店铺而言,若缺乏价格和运营等方面的绝对优势,要在市场中生存下去尤为困难。因此,合理使用测评…

深入探讨IDSIPS:信息安全的未来趋势与应用

引言 在信息技术飞速发展的今天,网络安全问题愈发突出。随着数据泄露、网络攻击等事件频发,企业和个人对信息安全的重视程度不断提高。IDSIPS(Intrusion Detection System and Intrusion Prevention System)作为信息安全领域的重…

PowerShell install 一键部署Oracle12c

Oracle12c前言 Oracle 12c是甲骨文公司推出的一款关系数据库管理系统,它引入了多项创新特性,如多租户架构、大数据处理和云部署,适用于企业级应用。以下是Oracle 12c的详细介绍: Oracle 12c的主要特点 高性能:通过多线程处理、自动优化等技术,提高了数据库的查询和处理…

非标工业模型评审不再难,3D一览通助力高效协同

在当今工业领域,非标设备设计正成为满足特定客户需求的关键。这类设计服务涉及为特定应用场景量身定制的设备或机器,它们通常不是市场上现成的标准化产品,而是根据客户的独特需求进行个性化设计和制造。 这种定制化过程要求设计团队与客户进…

Abp vNext(五)集成MQTTnet,可收发消息

一 前言 MQTT的相关理论内容这里不做过多介绍,请看下面两篇文章: Introduction MQTT协议中文版 MQTT协议-CSDN博客 这篇文章只做代码实现,文章中使用MQTTnet作为MQTT开发的组件。 MQTT分为服务端和客户端,一个服务端对应多个…

Python和C++及R相关系数数学统计学可视化和神经模型及评估指标

🎯要点 较少统计样本显著性评估和变量关系梳理功能磁共振成像一致性分析检测非单调关联性结构随机变量动力学相关性热图和矩阵图基因疫苗非线性变量相关性 Python相关矩阵 相关矩阵 n n n 个随机变量 X 1 , … , X n X_1, \ldots, X_n X1​,…,Xn​ 的相关矩阵…

视频去噪技术分享

视频去噪是一种视频处理技术,旨在从视频帧中移除噪声和干扰,提高视频质量。噪声可能由多种因素引起,包括低光照条件、高ISO设置、传感器缺陷等。视频去噪对于提升视频内容的可视性和可用性至关重要,特别是在安全监控、医疗成像和视…

迅为3A6000_7A2000开发板龙芯全国产处理器LoongArch架构核心主板

龙芯 3A6000 处理器完全自主设计、性能优异,代表了我国自主桌面 CPU 设计领域的最新里程碑成果。龙芯 3A6000 处理器的推出,说明国产 CPU 在自主可控程度和产品性能上已双双达到新高度,也证明了国内有能力在自研 CPU 架构上做出一流的产品。 …

聊聊AUTOSAR:基于Vector MICROSAR的TC8测试开发方案

技术背景 车载以太网技术作为汽车智能化和网联化的重要组成部分,正逐步成为现代汽车网络架构的核心,已广泛应用于汽车诊断(如OBD)、ECU软件更新、智能座舱系统、高清摄像头环视泊车系统等多个领域。 在这个过程中,ET…

SpringCloud 基于 web 的只会养老平台

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计…

Django SQL注入-漏洞分析

1.进入项目界面 图1 项目主界面 2.访问任意不存在的目录路径报错,提示存在demo接口 图2 提示存在接口 3.访问/demo/,提示有一个name参数 图3 发现隐藏参数 4.对接口参数进行fuzz(实战思路),vulfocus已经给出了/demo?…