面试常问系列(二)-神经网络参数初始化之自注意力机制

news2025/3/25 11:59:28

目录

(一)、transformer中的自注意力机制为什么要除以根号d?

1. 点积的方差问题

2. 缩放的作用

3. 类比初始化方法

4. 实验验证

5.总结


(一)、transformer中的自注意力机制为什么要除以根号d?

在Transformer的自注意力机制中,除以根号维度(即\sqrt{d_k},其中d_k是键向量的维度)的核心目的是为了稳定梯度,避免点积结果因维度增大而爆炸。以下是详细解释:

1. 点积的方差问题

  • 假设:查询向量(Q)和键向量(K)的每个分量独立且服从均值为0、方差为1的分布。
  • 点积计算Q*K^T 的结果是d_k​个独立分量的和(因为维度是d的点积,所以就是q1*k1+...+qn*kn)。根据独立变量的方差叠加性质,点积的方差为d_k *1 = d_k,标准差为\sqrt{d_k}
  • 问题:当d_k较大时(如512或1024),点积结果可能分布在-\sqrt{d_k}+\sqrt{d_k}的宽区间内。若直接输入Softmax,其梯度会因输入值过大而趋近于0(梯度饱和),导致训练困难。
    • 这里我在赘述一下
      • 随着d的增大,点积的范围可能变大,举例子
        • d=10,点击范围可能[-10,10]波动
        • d=1000,点击范围可能[-30,30]波动,甚至更高。
        • 讲到这里肯定有人好奇,这个为什么呢?除了直观上的加和项变多,该怎么理解呢?
          • 首选可以参考我上面的文章面试常问系列(一)-神经网络参数初始化-CSDN博客,会更好理解,下面我简单说一下。
          • Q*K^T 这个的方差就是上面说的,d个独立分量的和var(Q*K^T) = \sum_{i=0}^{d} qi*ki\\ =d *var(q_i)*var(k_i) =d
          • 上面的公式是核心,不理解的可以再去看一下我的链接。这也就是说,新的标准差范围取决于维度个数!!!
    • 还有什么问题呢?
      • 1>数值不稳定: softmax的公式分子是e的x次幂,分母是求和,如果包含大树,e的指数运算会直接溢出。如果x = [1000,10,10],则1000就直接溢出了。
      • 2>权重分布退化:softmax的公式分子是e的x次幂,分母是求和,如果包含大数,比如,x = [100,10,10] 那么softmax之后的值为
        [1.0, 8.194012623990515e-40, 8.194012623990515e-40]这个结果应该比较直观了,某个权重接近1,其他权重接近0,注意力机制,将会只关注极个别特征,变成hard模式,而没有那么soft!
      • 3>训练困难:在初始化阶段,过大的点积使 Softmax 输出极端化(接近0或1),梯度趋于零,导致梯度消失,阻碍模型收敛。不太理解的,可以去看下面试常问系列(一)-神经网络参数初始化-CSDN博客

2. 缩放的作用

  • 缩放公式:将点积结果除以\sqrt{d_k},即Softmax(\frac{Q*K^T}{\sqrt{d_k}})。
  • 方差控制:缩放后,点积的方差变为\frac{d_k}{\sqrt{d_k}^2} =1,标准差为1。这使得点积结果分布在更合理的区间(如-5到+5),Softmax的输入不会因维度增大而爆炸。
  • 梯度稳定性:Softmax的梯度在输入值适中时较大,缩放后梯度更稳定,模型训练更高效。

3. 类比初始化方法

  • 类似He初始化(考虑前一层神经元数量调整权重方差),此处通过缩放调整点积的方差,确保网络各层的输入分布稳定。

4. 实验验证

  • 原论文通过实验表明,缩放后模型收敛更快,性能更优。若省略缩放(即直接计算Softmax(Q⋅KT)),训练过程可能因梯度消失而失败。

5.总结

除以dk​​的本质是对点积结果进行方差归一化,确保Softmax的输入值不会随维度增大而失控,从而保持梯度稳定,提升训练效率和模型性能。这一设计是Transformer高效训练的关键细节之一。

6.赘述

后面这一部分,还会再出几个常见面试题,希望大家理论结合例子和实战,深入理解,加油!

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

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

相关文章

Linux冯诺依曼体系与计算机系统架构认知(8)

文章目录 前言一、冯诺依曼体系冯•诺依曼体系结构推导内存提高冯•诺依曼体系结构效率的方法你用QQ和朋友聊天时数据的流动过程与冯•诺依曼体系结构相关的一些知识 二、计算机层次结构分析操作系统(Operator System)驱动层的作用与意义系统调用接口(system call)用户操作接口…

LLM之RAG理论(十四)| RAG 最佳实践

RAG 的过程很复杂,包含许多组成部分。我们如何确定现有的 RAG 方法及其最佳组合,以确定最佳 RAG 实践? 论文 《Searching for Best Practices in Retrieval-Augmented Generation》给出了回答。 本文将从以下三方面进行介绍: 首先…

[RoarCTF 2019]Easy Calc-3.23BUUCTF练习day5(2)

[RoarCTF 2019]Easy Calc-3.23BUUCTF练习day5(2) 解题过程 查看源码 发现calc.php页面,访问一下 分析代码 首先获取$_GET[num]的值并赋给变量$str。然后定义了一个黑名单数组$blacklist,包含了一系列被禁止的字符或转义字符,如空格、制表…

hadoop集群配置-ssh无密登录

1.ssh-keygen -t rsa 2.ssh-copy-id hadoop1 3.ssh roothadoop1 退出 exit

MinGW与使用VScode写C语言适配

压缩包 通过网盘分享的文件:MinGW.zip 链接: https://pan.baidu.com/s/1QB-Zkuk2lCIZuVSHc-5T6A 提取码: 2c2q 需要下载的插件 1.翻译 找到VScode页面,从上数第4个,点击扩展(以下通此) 搜索---Chinese--点击---安装--o…

openharmony中hilog实证记录说明(3.1和5.0版本)

每次用这个工具hilog都有一些小用法记不清,需要花一些时间去查去分析使用方法,为了给丰富多彩的生活留出更多的时间,所以汇总整理共享来了,它来了它来了~~~~~~~~~ 开始是想通过3.1来汇总的,但实际测试发现openharmony…

算法刷题整理合集(七)·【算法赛】

本篇博客旨在记录自已的算法刷题练习成长,里面注有详细的代码注释以及和个人的思路想法,希望可以给同道之人些许帮助。本人也是算法小白,水平有限,如果文章中有什么错误或遗漏之处,望各位可以在评论区指正出来&#xf…

Android Studio控制台中文乱码解决方案

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 前言: 在项目调试过程中,用华为手机调试控制台没任何问题&#x…

Cherry Studio搭建本地知识库,结合DeepSeek实现RAG

Cherry Studio搭建本地知识库,结合DeepSeek实现RAG CherryStudioCherryStudio 简介环境准备 模型配置本地知识创建1、新建知识库2、添加文件3、添加网址或者网站4、搜索知识库 结合DeepSeek实现RAG1、选择知识库2、进行提问 常见问题与解决方案 CherryStudio Cherr…

【Android】VehiclePropertyAccess引起CarService崩溃

VehiclePropertyAccess引起CarService崩溃 VehiclePropertyAccess VehiclePropertyAccess属性,用于定义车辆属性的访问权限。权限包括 读:READ,只可以读取,不能写入。 VehiclePropertyAccess:READ写:WRITE&#xf…

深度剖析:复制带随机指针的链表算法实现

在链表相关的算法中,复制一个带有随机指针的链表是一个经典且具有一定难度的问题。本文将深入分析一段用C语言实现的复制带随机指针链表的代码,通过模块化的方式详细解释每段代码的作用,帮助读者更好地理解这一复杂算法。 作者主页&#xf…

Java 大视界 -- Java 大数据在智慧文旅旅游目的地营销与品牌传播中的应用(150)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

SQLMesh SCD-2 时间维度实战:餐饮菜单价格演化追踪

场景背景:动态菜单价格管理 考虑某连锁餐厅的菜单管理系统,需要记录食品价格的历史变更轨迹。业务需求包括: 记录每次价格调整的时间点支持历史价格查询(如"2020年1月2日汉堡多少钱")维护当前有效价格清单…

uniapp自身bug | uniapp+vue3打包后 index.html无法直接运行

前提: 已经修改了基础路径 打开打包文件,双击运行index.html报错,无法访问页面 uniappvue2项目是可以正常运行的 vue3修改publicPath: ./后,也是可以正常访问打包文件中的index.html 点进控制台提供的链接:https:/…

数据分析面试--京东

1.考察日期函数的应用 select Order_date, count(distinct user_id) as uv from (select user_id, Order_date, row_number() over(partition by user_id order by Order_date) as new_tagfrom ord where date_diff(current_date(), Order_date)<30 ) t where new_tag1 gro…

Centos7搭建Zabbix4.x监控HCL模拟网络设备:zabbix-server搭建及监控基础04

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 4.OID查看工具Getif安装及使用 找度娘下载Getif&#xff0c;该软件比较老&#xff0c;可以用来查看OID编码&#xff0c;我的宿主机是Win11,无法安装。所以只有到虚拟机win12去安装&am…

蓝桥杯2023年第十四届省赛真题-异或和之差

题目来自DOTCPP&#xff1a; 思路&#xff1a; 什么是异或和&#xff1f; ①题目要求我们选择两个不相交的子段&#xff0c;我们可以枚举一个分界线i&#xff0c;子段1在 i 的左边&#xff0c; 子段2在 i 的右边&#xff0c;分别找到子段1和子段2的最大值、最小值。 ②怎么确…

Linux系统管理实战:文件权限配置、用户组协作与日志处理全解析

1、创建/www目录&#xff0c;在/www目录下新建name和https目录&#xff0c;在name和https目录下分别创建一个index.html文件&#xff0c;name下面的index.html文件中包含当前主机的主机名&#xff0c;https目录下的index.html文件中包含当前主机的ip地址。 &#xff08;1&…

[自动化] 【八爪鱼】使用八爪鱼实现CSDN文章自动阅读脚本

在CSDN上&#xff0c;文章的阅读量往往是衡量内容影响力的一个重要指标。为了测试自动化手段能否提高阅读数&#xff0c;我尝试使用网页自动化工具来模拟人工阅读某个ID的文章。 1. 网页自动化的常见方案 谈到网页自动化&#xff0c;Selenium 是一个最常见的选择。它可以通过…

N列股票收盘价为起点的马科维茨(Markowitz)均值—方差理论

1. 数据准备与收益率计算 输入数据&#xff1a; 假设你有一个矩阵&#xff0c;每一列代表一只股票的历史收盘价序列。每一行对应一个时间点的收盘价。 计算收益率&#xff1a; 马科维茨理论要求使用资产的收益率而非价格。常用的收益率计算方法有对数收益率或简单收益率。 2.…