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

面试常问系列(一)-神经网络参数初始化-之自注意力机制为什么除以根号d而不是2*根号d或者3*根号d

首先先罗列几个参考文章,大家之后可以去看看,加深理解:

  • 面试常问系列(一)-神经网络参数初始化
  • 面试常问系列(一)-神经网络参数初始化之自注意力机制_注意力机制的参数初始化怎么做-CSDN博客
  • 面试常问系列(一)-神经网络参数初始化-之-softmax-CSDN博客

好,步入正题,我们假定各位读者看过上面👆几篇文章,已经了解了,为什么自注意力机制中要使用\sqrt{d} 进行缩放,然后我们进一步进行探究,为什么不是2\sqrt{d} 。

1、实例

1.点击没有缩放的时候,标准差的范围

  • 在【-\sqrt{d}\sqrt{d}】,有68.26%的值在这个区间,
  • 在【-2\sqrt{d},2\sqrt{d}】,有95.45%的值在这个区间,
  •  在【-3\sqrt{d},3\sqrt{d}】,有99.73%的值在这个区间,

参考:正态分布_百度百科

    2.点击缩放\sqrt{d}的时候,标准差的范围从\sqrt{d} 到 1

    • x在【-1,1】,e^x在【0.37,2.72】有68.26%的值在这个区间,
    • x在【-2,2】,e^x有【0.14,7.39】95.45%的值在这个区间,
    • x在【-3,3】,e^x有【0.05,20.09】99.73%的值在这个区间,

    3.点击缩放2\sqrt{d}的时候,标准差的范围从\sqrt{d} 到 0.5

    • x在【-0.5,0.5】,e^x在【0.61,1.65】有68.26%的值在这个区间,
    • x在【-1,1】,e^x有【0.37,2.72】95.45%的值在这个区间,
    • x在【-1.5,1.5】,e^x有【0.22,4.48】99.73%的值在这个区间,

    2、实例总结(重点)

    通过上述的不同缩放比例,大家应该可以比较清晰的发现,以一个标准差(68.26%)为例,随着缩放比例加大,变化范围减小,点击值被过度压缩,导致相对趋于均匀,从而无法很好的捕捉不同特征之间的差异,趋于大家都一样的感觉,区分度被缩小。大家感兴趣的可以实操看一下,softmax在不同缩放比例下的分布情况。

    3、梯度特性

    若除以2\sqrt{d},Softmax输入的方差过小,导致梯度值普遍偏低,模型训练效率显著下降。例如,在机器翻译任务中,使用2\sqrt{d}​的BLEU分数可能下降2-3个点。

    4、实验验证

    • 收敛速度对比

            在WMT14英德翻译任务中,使用\sqrt{d}的Transformer模型在5万步迭代后达到收敛,而使用2\sqrt{d}的模型需8万步迭代,且最终BLEU分数低1.5个点。

    • 数值稳定性测试

    通过模拟高维向量(d=1024)的点积计算,发现:        

                    a. \sqrt{d}缩放后,Softmax输入的最大值约为5,最小值约为-5,梯度值集中在[0.1,0.5];

                    b. 2\sqrt{d}缩放后,Softmax输入的最大值约为2.5,最小值约为-2.5,梯度值集中在[0.01,0.1],导致训练缓慢。

    • ​​​​​​​泛化能力分析
      • 在GLUE基准测试中,\sqrt{d}​缩放的模型在MNLI、QQP等任务上的准确率比2\sqrt{d}模型高1-2个百分点,表明其泛化能力更强。

    参考:

    https://zhuanlan.zhihu.com/p/32150751004

    相关文章:

    面试常问系列(一)-神经网络参数初始化-之自注意力机制为什么除以根号d而不是2*根号d或者3*根号d

    首先先罗列几个参考文章,大家之后可以去看看,加深理解: 面试常问系列(一)-神经网络参数初始化面试常问系列(一)-神经网络参数初始化之自注意力机制_注意力机制的参数初始化怎么做-CSDN博客面试常问系列(一)-神经网络参数初始化-之-softmax-C…...

    C++使用PoDoFo库处理PDF文件

    📚 PoDoFo 简介 PoDoFo 是一个用 C 编写的自由开源库,专用于 读取、写入和操作 PDF 文件。它适用于需要程序化处理 PDF 文件的应用程序,比如批量生成、修改、合并、提取元数据、绘图等。 🌟 核心特点 特性说明📄 P…...

    【Unity】Unity中修改网格的大小和倾斜网格

    一、问题 unity中的网格(Grid)或者地面Plane组件,在使用时,都是正方形的网格,而且建立该网格后,在不改变Scale情况下,没发使其整体变大,而且也没法改变每个网格的大小,而…...

    SQL 与 Python:日期维度表创建的不同选择

    文章目录 一、日期维度表概述日期维度表结构 二、使用 SQL 创建日期维度表2.1 表结构设计2.2 数据插入2.3 SQL 创建方式的优势与局限 三、使用 Python 创建日期维度表3.1 依赖库引入3.2 代码实现3.3 Python 创建方式的优势与局限 四、应用场景与选择建议4.1 应用场景4.2 选择建…...

    Transformer-LSTM混合模型在时序回归中的完整流程研究

    Transformer-LSTM混合模型在时序回归中的完整流程研究 引言与背景 深度学习中的长期依赖建模一直是时序预测的核心问题。长短期记忆网络(LSTM)作为一种循环神经网络,因其特殊的门控结构能够有效捕捉序列的历史信息,并在时序预测…...

    UE5 渲染思路笔记(角色)

    参考示例 首先是怎么做到辉光只有部分有而整体没有的 使用的是Bloom内的阈值,控制光的溢光量 Threshold(阈值):这个参数决定了图像中哪些像素会参与泛光计算。只有那些亮度超过阈值的像素才会触发泛光效果。阈值越低,更多的像素会…...

    运维打铁:服务器分类及PHP入门

    文章目录 C/S架构和B/S架构C/S架构B/S架构 服务器分类服务器类型服务器软件 使用 WampServer 搭建 HTTP服务集成环境的分类WampServer 的安装测试访问配置网站根目录 静态网站和动态网站PHP的常见语法第一段 php 代码注释变量数据类型运算符函数的定义类和对象内容输出循环语句…...

    js原型污染 + xss劫持base -- no-code b01lersctf 2025

    题目信息:Found this new web framework the other day—you don’t need to write any code, just JSON. 我们先来搞清楚究竟发生了什么 当我们访问 /index /*** 处理 /:page 路径的 GET 请求* param {Object} req - 请求对象* param {Object} reply - 响应对象* returns {Pro…...

    力扣92.反转指定范围内的链表、25.k个一组反转链表

    92.反转指定范围内的链表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next;…...

    Python - 爬虫;Scrapy框架(一)

    框架,就相当于一个封装了很多功能的结构体,它帮我们把主要的结构给搭建好了,我们只需往骨架里添加内容就行。 Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scra…...

    The 2024 ICPC Kunming Invitational Contest G. Be Positive

    https://codeforces.com/gym/105386/problem/G 题目&#xff1a; 结论&#xff1a; 从0开始每四个相邻数的异或值为0 代码&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long void solve() {int n;cin >> n;if(n1||n%40){cout &…...

    GET请求如何传复杂数组参数

    背景 有个历史项目&#xff0c;是GET请求&#xff0c;但是很多请求还是复杂参数&#xff0c;比如&#xff1a;参数是数组&#xff0c;且数组中每一个元素都是复杂的对象&#xff0c;这个时候怎么传参数呢&#xff1f; 看之前请求直接是拼接在url后面 类似&items%5B0%5D.…...

    leetcode - 双指针问题

    文章目录 前言 题1 移动零&#xff1a; 思路&#xff1a; 参考代码&#xff1a; 题2 复写零&#xff1a; 思考&#xff1a; 参考代码&#xff1a; 题3 快乐数&#xff1a; 思考&#xff1a; 参考代码&#xff1a; 题4 盛最多水的容器&#xff1a; 思考&#xff1a;…...

    人工智能之数学基础:二次型

    本文重点 二次型作为线性代数领域的重要概念,架起了代数方程与几何分析之间的桥梁。从古典解析几何中的圆锥曲线方程到现代优化理论中的目标函数,二次型以其简洁的数学表达和丰富的结构特性,在数学物理、工程技术和经济金融等领域发挥着不可替代的作用。 二次型的基本概念…...

    存储过程补充——流程控制语句详解

    文章目录 1. 条件判断语句1.1 分支结构之 IF1.2 分支结构之 CASE 2. 循环语句2.1 循环结构之LOOP2.2 循环结构之WHILE2.3 循环结构之REPEAT 3. 跳转语句3.6 跳转语句之LEAVE语句3.7 跳转语句之ITERATE语句 在数据库管理系统中&#xff0c;存储过程是一种强大的工具&#xff0c;…...

    【Unity笔记】实现支持不同渲染管线的天空盒曝光度控制组件(SkyboxExposureController)——参数化控制

    写在前面 在Unity中&#xff0c;天空盒&#xff08;Skybox&#xff09;不仅承担视觉上的背景作用&#xff0c;更是场景环境光照与氛围塑造的重要组成部分。不同时间、天气、场景转换等&#xff0c;都需要灵活调整天空的亮度。而**曝光度&#xff08;Exposure&#xff09;**就是…...

    Docker 使用与部署(超详细)

    目录 引入 入门使用 部署对比 镜像仓库 命令解释 基础 常见命令 示例 数据卷的使用 数据卷的概念 数据卷的使用 挂载本地目录文件 镜像 结构 Dockerfile 容器网络 部署 DockerCompose 语法 ​编辑 基础命令 引入 当我们在 Linux 上部署一个集成了很多中间件…...

    CSS实现图片垂直居中方法

    html <div class"footer border-top-row"><div class"footer-row"><span class"footer-row-col01">制单人&#xff1a;{{ printData[pageIndex - 1].rkMaster.makerName}}<img :src"getPersonSignImgSrc(printData[pa…...

    C#实现Socket通信:基于TCP/IP协议的网络编程

    TCP/IP网络模型 最上层的是应用层&#xff0c;也就是我们日常可以接触到的&#xff0c;它会给数据添加对应的头部&#xff0c;并传输给传输层&#xff0c;应用层是我们日常会接触到的&#xff0c;比如HTTP&#xff0c;FTP&#xff0c;Telnet&#xff0c;DNS&#xff0c;SMTP。…...

    基于C++的IOT网关和平台7:github项目ctGateway设备协议开发指南

    初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。 源码指引:github源码指引_初级代码游戏的博客-CSDN博客 系…...

    大数据实时数仓的数据质量监控解决方案

    实时数仓不仅仅是传统数据仓库的升级版,它更强调数据的实时性、流动性和高可用性,通过对海量数据的即时处理和分析,为企业提供近乎实时的洞察力。这种能力在金融、零售、制造、互联网等行业中尤为关键,例如,电商平台可以通过实时数仓监控用户行为,动态调整推荐算法;金融…...

    Python+Scrapy跨境电商爬虫实战:从亚马逊/沃尔玛数据采集到反爬攻克(附Pangolin API高效方案)

    从零实战到反爬攻克&#xff0c;揭秘跨境数据抓取全流程与Pangolin Scrape API终极方案 在当今数据驱动的跨境电商时代&#xff0c;谁掌握了优质的市场数据&#xff0c;谁就掌握了成功的关键。随着全球电商市场规模持续扩大&#xff08;据Statista最新报告显示&#xff0c;2025…...

    简单快速的浮点数转字符串算法,适合单片机环境

    目的是在OLED 屏幕上显示浮点数&#xff0c;有几个设计要求&#xff1a; 我已经有一个现成的能显示整数的函数&#xff0c;希望尽量复用&#xff1b;尽量不使用除法&#xff1b;不需要考虑小数四舍五入的问题&#xff1b; 我觉得小数四舍五入其实很多时候没什么用处&#xff…...

    c++中构造对象实例的两种方式及其返回值

    c中&#xff0c;构造对象实例有两种方式&#xff0c;一种返回对象实例&#xff0c;一种返回该对象实例的指针。如下所示&#xff1a; 一、两种返回值 RedisConn conn1; //得到实例conn1;RedisConn *conn2 new RedisConn();//得到指针conn2;RedisConn conn3 new RedisConn()…...

    Python实例题:Python操作excel自动化开发

    目录 Python实例题 题目 安装依赖库 示例代码 代码解释 写入 Excel 文件&#xff1a; 读取 Excel 文件&#xff1a; 修改 Excel 文件&#xff1a; 运行思路 注意事项 Python实例题 题目 Python操作excel自动化开发 安装依赖库 pip install openpyxl示例代码 imp…...

    【日撸 Java 三百行】Day 7(Java的数组与矩阵元素相加)

    目录 Day 7&#xff1a;Java 的数组与矩阵元素相加 一、基本知识 二、矩阵的建立与基本计算 三、代码及测试 拓展&#xff1a;Arrays类详解 小结 Day 7&#xff1a;Java 的数组与矩阵元素相加 Task&#xff1a; 矩阵的赋值.二重循环. 一、基本知识 在学习 Java 中的数组与矩…...

    【Python】常用命令提示符

    Python常用的命令提示符 一、Python环境基础命令【Windows】 于Windows环境下&#xff0c;针对Python&#xff0c;在CMD&#xff08;命令提示符&#xff09;常用的命令以及具体用法&#xff0c;怎么用&#xff1b;   主要包含&#xff1a;运行脚本、包管理、虚拟环境、调试与…...

    vite:npm 安装 pdfjs-dist , PDF.js View 预览功能示例

    pdfjs-dist 是 Mozilla 的 PDF.js 库的预构建版本&#xff0c;能让你在项目里展示 PDF 文件。下面为你介绍如何用 npm 安装 pdfjs-dist 并应用 pdf.js 和 pdf.worker.js。 为了方便&#xff0c;我将使用 vite 搭建一个原生 js 项目。 1.创建项目 npm create vitelatest pdf-v…...

    【开源版】likeshop上门家政系统PHP版全开源+uniapp前端

    一.系统介绍 likeshop_上门家政系统&#xff0c;PHP版本更新至2.1.1最新版&#xff0c;全开源&#xff0c;适用于上门家政场景&#xff0c;系统拥有用户端、师傅端、无论运营还是二开都是性价比极高的100%开源家政系统。 二.搭建环境-教程 系统环境&#xff1a;CentOS、 运行…...

    html object标签介绍(用于嵌入外部资源通用标签)(已不推荐使用deprecated,建议使用img、video、audio标签)

    文章目录 HTML <object> 标签详解基本语法与核心属性关键属性解析1. **data**2. **type**3. **width & height**4. **name** 嵌入不同类型的资源1. **嵌入图像**2. **嵌入音频**3. **嵌入视频**4. **嵌入 PDF** 参数传递与回退内容**参数&#xff08;<param>&a…...