基于考研概率论知识解读 Transformer:为何自注意力机制要除以根号 dk

Transformer自注意力机制中除以 d k \sqrt{d_k} dk 深度剖析

【 Transformer 系列,故事从 d k \sqrt{d_k} dk 说起

LLM这么火,Transformer厥功甚伟,某天心血来潮~,再去看看!

它长这个样子: 深入浅出 Transformer

看完后,想起了老生常谈 d k \sqrt{d_k} dk 问题,必须一探究竟:Transformer 中缩放点积注意力机制探讨:除以根号 dk 理由及其影响

感觉不够清楚,还是再Review下考研概率论,有了:基于考研概率论知识解读 Transformer:为何自注意力机制要除以根号 dk,中间会涉及初始化、标准化、Sofrmax函数,于是继续

【初始化相关】:深度学习中的常见初始化方法:原理、应用与比较
【标准化系列】: 数据为什么要进行标准化:Z-标准化的神奇蜕变,带出了关联知识点: 深度 “炼丹” 术之 Batch Normalization 与 Z - 标准化:开启数据的神秘转换
【Softmax复习】:Softmax 层反向传播梯度计算实例解析,中间想到了经常配套使用的交叉熵,于是梳理了交叉熵的前世今生

KL 散度:多维度解读概率分布间的隐秘 “距离”
熵与交叉熵:从不确定性角度理解 KL 散度
机器学习、深度学习关于熵你所需要知道的一切

摘要

本文深入探讨了Transformer自注意力机制中除以 d k \sqrt{d_k} dk 这一关键操作的原因。通过详细的推导过程揭示 d k \sqrt{d_k} dk 的来源,并结合Softmax函数的特性,分析不除以 d k \sqrt{d_k} dk 以及除以结果偏离 d k \sqrt{d_k} dk 时对模型造成的后果及其内在原因,旨在为理解Transformer的工作原理提供全面且深入的视角。

引言

Transformer架构在自然语言处理及其他诸多领域取得了巨大成功,其自注意力机制是核心创新点之一。在自注意力机制的计算过程中,除以 d k \sqrt{d_k} dk (其中 d k d_k dk是键(Key)向量的维度)这一操作对模型的稳定性和性能起着至关重要的作用,本文结合考研中的概率知识对除以 d k \sqrt{d_k} dk 进行理解。


一、考研概率论内容复习

在Transformer自注意力机制中关于方差推导主要用到了以下考研概率知识:

在这里插入图片描述

  1. 期望与方差的基本定义及性质
    • 期望:期望 E ( X ) E(X) E(X) 表示随机变量 X X X 取值的平均水平。
    • 方差:方差 V a r ( X ) = E [ ( X − E ( X ) ) 2 ] = E [ X 2 ] − ( E [ X ] ) 2 Var(X)=E[(X - E(X))^2]=E[X^2]-(E[X])^2 Var(X)=E[(XE(X))2]=E[X2](E[X])2,用于衡量随机变量取值的离散程度。
  2. 独立随机变量的性质
    • X X X Y Y Y 是两个独立的随机变量,则 E [ X Y ] = E [ X ] E [ Y ] E[XY]=E[X]E[Y] E[XY]=E[X]E[Y]
    • 对于独立随机变量 X X X Y Y Y V a r ( X Y ) = E [ X 2 ] E [ Y 2 ] − ( E [ X ] E [ Y ] ) 2 Var(XY)=E[X^2]E[Y^2]-(E[X]E[Y])^2 Var(XY)=E[X2]E[Y2](E[X]E[Y])2
    • X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1,X2,,Xn 相互独立,那么 V a r ( ∑ i = 1 n X i ) = ∑ i = 1 n V a r ( X i ) Var(\sum_{i = 1}^{n}X_i)=\sum_{i = 1}^{n}Var(X_i) Var(i=1nXi)=i=1nVar(Xi)
  3. 随机变量的分布
    假设随机变量 q i q_i qi k i k_i ki 独立同分布,简化了分析过程,使得可以基于相同的分布特性对所有变量进行统一处理。

二、选择除以 d k \sqrt{d_k} dk 的原因

1. 稳定方差

在自注意力机制中,计算注意力分数时涉及查询(Query)向量与键(Key)向量的点积。假设Query向量 Q Q Q和Key向量 K K K的元素是独立同分布的随机变量,均值为0,方差为1(实际模型参数随机初始化时接近此假设)。对于长度为 d k d_k dk的向量 Q = ( q 1 , q 2 , ⋯ , q d k ) Q=(q_1,q_2,\cdots,q_{d_k}) Q=(q1,q2,,qdk) K = ( k 1 , k 2 , ⋯ , k d k ) K=(k_1,k_2,\cdots,k_{d_k}) K=(k1,k2,,kdk),它们的点积 S = ∑ i = 1 d k q i k i S = \sum_{i = 1}^{d_k}q_ik_i S=i=1dkqiki

根据方差性质, V a r ( S ) = ∑ i = 1 d k V a r ( q i k i ) Var(S)=\sum_{i = 1}^{d_k}Var(q_ik_i) Var(S)=i=1dkVar(qiki)由于 q i q_i qi k i k_i ki相互独立, V a r ( q i k i ) = E [ q i 2 ] E [ k i 2 ] − ( E [ q i ] E [ q i ] ) 2 Var(q_ik_i)=E[q_i^2]E[k_i^2]-(E[q_i]E[q_i])^2 Var(qiki)=E[qi2]E[ki2](E[qi]E[qi])2已知 E [ q i ] = E [ k i ] = 0 E[q_i]=E[k_i]=0 E[qi]=E[ki]=0 V a r ( q i ) = V a r ( k i ) = 1 Var(q_i)=Var(k_i)=1 Var(qi)=Var(ki)=1,则 E [ q i 2 ] = E [ k i 2 ] = 1 E[q_i^2]=E[k_i^2]=1 E[qi2]=E[ki2]=1,所以 V a r ( q i k i ) = 1 Var(q_ik_i)=1 Var(qiki)=1,进而 V a r ( S ) = d k Var(S)=d_k Var(S)=dk

这表明点积 S S S的方差随维度 d k d_k dk增大而线性增大。为使点积结果方差稳定,除以 d k \sqrt{d_k} dk ,即新变量 S ′ = S d k S'=\frac{S}{\sqrt{d_k}} S=dk S的方差 V a r ( S ′ ) = 1 d k V a r ( S ) = 1 Var(S') = \frac{1}{d_k}Var(S)=1 Var(S)=dk1Var(S)=1稳定的方差有助于后续Softmax函数输入处于合理范围,避免其输出概率分布过于极端,保证模型训练稳定性。

2. 平衡维度影响

除以 d k \sqrt{d_k} dk 可视为一种归一化操作,有助于平衡不同维度特征在注意力计算中的贡献。若不进行此缩放,高维度向量在点积运算中可能占据主导,使模型过度关注某些维度信息,忽略其他维度。通过除以 d k \sqrt{d_k} dk ,不同维度影响更均衡,模型能全面考虑序列元素关系。

三、 d k \sqrt{d_k} dk 的来源推导

如前文所述,基于随机向量点积方差分析。设 Q Q Q K K K向量元素为独立同分布随机变量,均值为0,方差为1。点积 S = ∑ i = 1 d k q i k i S = \sum_{i = 1}^{d_k}q_ik_i S=i=1dkqiki,其方差 V a r ( S ) = d k Var(S)=d_k Var(S)=dk

为将点积结果方差稳定在1附近,需对其归一化。自然的想法是除以与方差相关量,即除以 V a r ( S ) \sqrt{Var(S)} Var(S) ,也就是 d k \sqrt{d_k} dk 。这样处理后,点积结果的方差得以稳定,为后续Softmax函数提供合适输入。

四、不恰当缩放的后果

1. 不除以 d k \sqrt{d_k} dk

若不除以 d k \sqrt{d_k} dk ,随着 d k d_k dk增大,点积结果方差增大。输入到Softmax函数的数值方差过大,会使Softmax输出概率分布极其不均匀,大部分概率集中在少数较大数值对应元素上。

在反向传播中,这种不均匀分布导致梯度问题。一方面,概率接近0的元素对应梯度极小,在反向传播中对梯度贡献可忽略不计,多个此类元素累积使得梯度消失,模型参数更新缓慢甚至停滞。另一方面,概率接近1的元素对应梯度可能极大,在反向传播中累积导致梯度爆炸,使模型参数更新幅度过大,无法收敛。

2. 除以结果大于 d k \sqrt{d_k} dk

若除以大于 d k \sqrt{d_k} dk 的值,如 α d k \alpha\sqrt{d_k} αdk α > 1 \alpha > 1 α>1),会过度缩放点积结果。这使得Softmax函数输入数值范围变小,输出概率分布相对均匀,各元素概率差异不明显。

在这种情况下,模型难以区分不同元素重要性,无法有效捕捉序列中关键信息,导致模型性能下降。因为自注意力机制依赖概率分布差异来聚焦重要信息,过于均匀分布削弱了这种聚焦能力。

3. 除以结果小于 d k \sqrt{d_k} dk

若除以小于 d k \sqrt{d_k} dk 的值,如 β d k \beta\sqrt{d_k} βdk 0 < β < 1 0 < \beta < 1 0<β<1),点积结果缩放不足,方差仍较大。Softmax函数输入数值方差大,输出概率分布仍会过度集中,类似不除以 d k \sqrt{d_k} dk 的情况,导致梯度消失或爆炸问题,阻碍模型正常训练。

五、结论

在Transformer自注意力机制中,除以 d k \sqrt{d_k} dk 是经过精心设计的关键操作。它源于对随机向量点积方差的理论分析,旨在稳定方差、平衡维度影响。不恰当的缩放,无论是不除以 d k \sqrt{d_k} dk ,还是除以结果偏离 d k \sqrt{d_k} dk ,都会因Softmax函数特性引发梯度问题或信息捕捉能力下降,严重影响模型性能。理解这一操作的原理和影响,对于深入理解Transformer架构及优化相关模型具有重要意义。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka权威指南(第2版)读书笔记

目录 Kafka生产者——向Kafka写入数据生产者概览创建Kafka生产者bootstrap.serverskey.serializervalue.serializer 发送消息到Kafka同步发送消息 Kafka生产者——向Kafka写入数据 不管是把Kafka作为消息队列、消息总线还是数据存储平台&#xff0c;总是需要一个可以往Kafka写…

python识别图片中指定颜色的图案并保存为图片

示例代码&#xff1a; def chuli(color):import cv2import numpy as np# 定义颜色名称到HSV阈值范围的映射color_thresholds {red: ([0, 100, 100], [10, 255, 255], [160, 100, 100], [180, 255, 255]),yellow: ([20, 100, 100], [30, 255, 255]),blue: ([90, 100, 100], [1…

golang 环境变量配置

一、GoLand显示环境如下 修改环境变量 新建系统变量 GOROOT&#xff1a; D:\ENSPACE\golandsdk\1.23.1\go1.23.1新建系统变量 GOPATH&#xff1a;工作目录&#xff08;在下面目录下新建目录&#xff1a;src,项目工程目录都要建在src下如&#xff1a;demo1 demo2&#xff09; D…

当自动包布机遇上Profinet转ModbusTCP网关,“妙啊”,工业智能“前景无限

在自动化控制技术日新月异的当下&#xff0c;Profinet与ModbusTCP这两种协议在工业通信领域占据着举足轻重的地位。ModbusTCP是基于以太网的串行通信协议&#xff0c;而Profinet则是依托工业以太网的现场总线协议。它们在数据传输速度、实时性表现以及兼容性等方面各具特色。不…

Redis的过期策略、内存淘汰机制

Redis只能存5G数据&#xff0c;可是你写了10G&#xff0c;那会删5G的数据。怎么删的&#xff1f;还有&#xff0c;你的数据已经设置了过期时间&#xff0c;但是时间到了&#xff0c;为什么内存占用率还是比较高? 一、Redis的过期策略 Redis采用的是定期删除惰性删除策略。 1…

一文通透OpenVLA及其源码剖析——基于Prismatic VLM(SigLIP、DinoV2、Llama 2)及离散化动作预测

前言 当对机器人动作策略的预测越来越成熟稳定之后(比如ACT、比如扩散策略diffusion policy)&#xff0c;为了让机器人可以拥有更好的泛化能力&#xff0c;比较典型的途径之一便是基于预训练过的大语言模型中的广泛知识&#xff0c;然后加一个policy head(当然&#xff0c;一开…

MySQL数据库(SQL分类)

SQL分类 分类全称解释DDLData Definition Language数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库&#xff0c;表&#xff0c;字段&#xff09;DMLData Manipulation Language数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQLData Query Languag…

word-break控制的几种容器换行行为详解

word-break 属性在控制换行行为时需要根据语言判断&#xff0c;对于中文 一个字符就是一个单词&#xff0c;字符换行不影响阅读理解&#xff0c;而对于英文来说&#xff0c;多个连续的字符才会是一个单词&#xff0c;例如中文的 早 英文为 morning。 morning7个字符才算一个单词…

国内源快速在线安装qt5.15以上版本。(10min安装好)(图文教程)

参考文章&#xff1a;Qt6安装教程——国内源-CSDN博客 1、在国内源上下载qt在线安装工具 NJU Mirror 2、 将下载好的在线安装工具&#xff0c;放到C盘根目录&#xff0c; 2.1 打开windows Powershell&#xff08;WinX&#xff09;&#xff0c;下边那个最好。 输入两条指令&a…

JVM虚拟机的组成 笼统理解 六大部分 类加载子系统 运行时数据区 执行引擎 本地接口 垃圾回收器 线程工具

目录 JVM虚拟机的组成&#xff1a;概述 JVM虚拟机的组成&#xff1a;详细解析 1. 类加载子系统 2. 运行时数据区 3. 执行引擎 4. 本地接口 5. 垃圾回收器 6. 线程管理与调试工具 概述 JVM&#xff08;Java Virtual Machine&#xff09;是一个虚拟计算机&#xff0c;执行…

2025 年 UI 大屏设计新风向

在科技日新月异的 2025 年&#xff0c;UI 大屏设计领域正经历着深刻的变革。随着技术的不断进步和用户需求的日益多样化&#xff0c;新的设计风向逐渐显现。了解并掌握这些趋势&#xff0c;对于设计师打造出更具吸引力和实用性的 UI 大屏作品至关重要。 一、沉浸式体验设计 如…

虚拟拨号技术(GOIP|VOIP)【基于IP的语音传输转换给不法分子的境外来电披上一层外衣】: Voice over Internet Protocol

文章目录 引言I 虚拟拨号技术(GOIP|VOIP)原理特性:隐蔽性和欺骗性II “GOIP”设备原理主要功能III 基于IP的语音传输 “VOIP” (Voice over Internet Protocol)IV “断卡行动”“断卡行动”目的电信运营商为打击电诈的工作V 知识扩展虚拟号保护隐私虚拟运营商被用于拨打骚扰…

算法-查找数组对角线上最大的质数

力扣题目&#xff1a;2614. 对角线上的质数 - 力扣&#xff08;LeetCode&#xff09; 给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数&#xff0c;返回 0 。 注意&#xff1a; 如果某个整数大于…

js:正则表达式

目录 正则表达式的语法 定义 检测 检索 元字符 边界符 量词 字符类 表单判断案例 修饰符 过滤敏感词 正则表达式是一种用于匹配和操作文本的强大工具&#xff0c;它是由一系列字符和特殊字符组成的模式&#xff0c;用于描述要匹配的文本字符组合模式 正则表达式是一…

Excel数据叠加生成新DataFrame:操作指南与案例

目录 一、准备工作 二、读取Excel文件 三、数据叠加 四、处理重复数据&#xff08;可选&#xff09; 五、保存新DataFrame到Excel文件 六、案例演示 七、注意事项 八、总结 在日常数据处理工作中&#xff0c;我们经常需要将不同Excel文档中的数据整合到一个新的DataFra…

HarmonyOS NEXT开发进阶(六):HarmonyOS NEXT实现嵌套 H5 及双向通信

文章目录 一、前言二、鸿蒙应用加载Web页面2.1 加载网络地址页面2.2 加载本地H5页面 三、实现Web组件 H5 层与鸿蒙应用层进行相互通讯3.1 鸿蒙应用向 H5 页面发送数据3.2 H5页面向鸿蒙应用发送数据 四、拓展阅读 一、前言 随着HarmonyOS NEXT的快速发展&#xff0c;越来越多的…

Linux Top 命令 load average 指标解读

前言 作为平台开发的同学&#xff0c;维护平台稳定性是我们最基本的工作职责&#xff0c;下面主要介绍下top 命令里 &#xff0c;load average 这个指标如何去衡量机器负载程度。 概念介绍 load average 是系统在过去 1 分钟、5 分钟、15 分钟 的平均负载&#xff0c;它表示运…

uni-app编写微信小程序使用uni-popup搭配uni-popup-dialog组件在ios自动弹出键盘。

uni-popup-dialog 对话框 将 uni-popup 的type属性改为 dialog&#xff0c;并引入对应组件即可使用对话框 &#xff0c;该组件不支持单独使用 示例 <button click"open">打开弹窗</button> <uni-popup ref"popup" type"dialog"…

国产编辑器EverEdit - 扩展脚本:新建同类型文件(避免编程学习者反复新建保存练习文件)

1 扩展脚本&#xff1a;在当前文件目录下新建同类型文件 1.1 应用场景 用户在进行编程语言学习时&#xff0c;比如&#xff1a;Python&#xff0c;经常做完一个小练习后&#xff0c;又需要新建一个文件&#xff0c;在新建文件的时候&#xff0c;不但要选择文件类型&#xff0c…

C#使用OpenTK绘制3D可拖动旋转图形三棱锥

接上篇,绘制着色矩形 C#使用OpenTK绘制一个着色矩形-CSDN博客 上一篇安装OpenTK.GLControl后,这里可以直接拖动控件GLControl 我们会发现GLControl继承于UserControl //// 摘要:// OpenGL-aware WinForms control. The WinForms designer will always call the default//…