Transformer 的注意力头越多越好么

简介: Transformer 的注意力头越多越好么

多头注意力机制的目的是通过捕捉不同的注意力信息来提升 AI 模型的表达能力。利用多头矩阵的子空间从不同的视角或者说维度来表达输入的数据。


从贝叶斯神经网络的角度,多头注意力机制是一种采样(Sampling)技术, 每个注意力头是一个采样。 每个头区分度越大,相当于视角越多, 这样的话按道理Transformer 对目标可以进行更好的拟合。 但注意力头真的是越多越好么?(不考虑过拟合和硬件条件的情况下)


问题的关键是注意力头本身是矩阵形式,对输入数据进行线性变换, 得到的结果是离散的而非连续的, 不能够真正表达连续的目标概率分布。与真正的目标间存在误差,而注意力头越多,累计误差也会越大,导致模型的表现也变差。


训练的时候注意力头越多拟合的越好,但是 test 的时候注意力头多不一定效果好,并且还比较多余。


这个我们人脑的机制是一样的, 我们阅读一段文字,很快的读过去, 能够注意到的关键点和它们之间的联系并不会特别多,但也不妨碍我们理解一段话的意思。所以这给我们一个启示,对神经网络的设计,很多时候可以参考人脑思考运行的规律, 模拟人脑的运行策略,也会获得接近的运行效果。


Reference:


Are Sixteen Heads Really Better than One?


Transformer 101 个思考问题:


https://gitee.com/oatmeal3000/Transformer101Q


目录
相关文章
|
存储 关系型数据库 MySQL
《MySQL 简易速速上手小册》第5章:高可用性和灾难恢复(2024 最新版)
《MySQL 简易速速上手小册》第5章:高可用性和灾难恢复(2024 最新版)
225 2
|
机器学习/深度学习
大模型训练loss突刺原因和解决办法
【1月更文挑战第19天】大模型训练loss突刺原因和解决办法
1850 1
大模型训练loss突刺原因和解决办法
|
前端开发 JavaScript Java
解决springboot+vue+mybatis中,将后台数据分页显示在前台,并且根据页码自动跳转对应页码信息
该博客文章讲述了如何在Spring Boot + Vue + MyBatis的项目中实现后台数据的分页查询,并在前端进行显示和页码跳转,包括后端的分页查询实现、前端与后端的交互以及使用Element UI进行分页展示的方法。
|
Linux C语言
成功解决 在Linux CentOS 7 中安装gcc
这篇文章介绍了如何在Linux CentOS 7系统中安装gcc (g++) 8工具集。由于CentOS 7默认的gcc版本是4.8,而这个版本与Qt 5.14、Qt 5.15或更高版本不兼容,可能会导致编译时出现系统头文件错误。文章中提到,即使在项目配置中添加了`CONFIG+=c++11`,如果仍然报错,那么很可能是gcc版本的问题。为了解决这个问题,文章提供了使用CentOS的Software Collections (scl)来安装更新版本的gcc的步骤。
成功解决 在Linux CentOS 7 中安装gcc
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
NLP的原理是什么?
【10月更文挑战第8天】NLP的原理是什么?
368 0
|
机器学习/深度学习 算法
【MATLAB】 多元变分模态分解MVMD信号分解算法
【MATLAB】 多元变分模态分解MVMD信号分解算法
1378 0
|
机器学习/深度学习 编解码 数据可视化
即插即用 | 清华大学提出Focused Linear Attention取代Self-Attention成为ViT的新宠
即插即用 | 清华大学提出Focused Linear Attention取代Self-Attention成为ViT的新宠
462 0
|
存储 自然语言处理 编译器
在Overleaf中解决IEEE LaTeX模板不能显示中文问题
在Overleaf中解决IEEE LaTeX模板不能显示中文问题
5822 0
|
数据采集 监控 前端开发
数据治理必读系列(二)丨3步提升企业数据标准化程度
数据治理必读系列(二)丨3步提升企业数据标准化程度
371 0
|
网络协议 安全 Linux
Scapy:Python发包收包利器
Scapy:Python发包收包利器
580 0