Tansformer原理解读

什么是注意力机制

生物学中的注意力机制是指人类或动物能够选择性地将感知和认知资源集中到某些信息或任务上的能力。这种能力允许我们在众多信息的背景中过滤出重要的信息,并将这些信息传递给相应的神经元进行处理。

本质:能从中抓住重点,不丢失重要信息

我们的视觉系统就是一种 Attention机制,将有限的注意力集中在重点信息上,从而节省资源,快速获得最有效的信息。

在这里插入图片描述
简单且直观的理解,机器学习中注意力机制跟人的注意力类似,一张图片的信息量很多,大部分人只会注意**“锦江饭店**”四个字,招牌后面的电话号码和汽车就不是关注的重点。

原理

在这里插入图片描述

  • Attention机制好比在图书馆中有大量的书籍,每本书都有特定的编号和内容。当想要了解某个主题(比如“漫威”)时,会查找与这个主题相关的书籍。
  • 与“漫威”直接相关的动漫、电影书籍会仔细地阅读(权重高),而与“漫威”间接相关的二战书籍只需要简单浏览一下(权重低)。
  • 这个过程就体现了Attention机制的核心思想:根据信息的重要性来分配注意力。

Transformer经典架构

在这里插入图片描述

Transformer架构中有两个核心的组件Encoder和Decoder,左边的这张图是Transformer架构的一个简单表示形式,右边的这张图是Transformer架构的一个完整表示形式,其中有一个重要的Multi-Head Attention组件,称为注意力层。
Transformer架构中的两个核心的组件Encoder和Decoder,每个组件都可以单独使用,具体取决于任务的类型:

  • 编码器(Encoder):它负责提取信息,通过细致分析输入文本,理解文本中各个元素的含义,并发现它们之间的隐藏联系。
  • 解码器(Decoder):依托编码器提供的深入洞察,解码器负责生成所需的输出,无论是将句子翻译成另一种语言、生成一个精确的摘要,还是创作一首全新的诗歌。
  • Encoder-decoder models 或者 sequence-to-sequence models: 适用于需要根据输入进行生成的任务,如翻译或摘要。
transformer流程

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/505c0e6e61674fa8937f31da41eae510.png在这里插入图片描述

Encoder过程

每一层的Encoder由2个子组件组成:自注意力层和前馈网络层,其中文本的输入会先流入自注意力层,正是由于自注意力层的存在,帮助Encoder在对特定文本进行遍历时,能够让Encoder观察到文本中的其他单词。然后自注意力层的结果被输出到前馈网络层

在这里插入图片描述
编码器的旅程从 “输入嵌入” 开始,此过程中,每个单词都从文本形态转换为数值向量,就好像给每个单词配上了一个独一无二的身份证。

以这个例子为例:
输入文本:例如,“The cat sat on the mat.”
在输入嵌入层,每个单词都被翻译成一个数值向量,就像在一个庞大的字典里,每个单词都有一个对应的 “向量地址”。

这些向量不仅捕捉了单词的含义,还包括:

  • 语义关系(比如,“cat” 和 “pet” 更近,而不是和 “chair”);
  • 句法角色(比如,“cat” 通常作为名词,“sat” 作为动词);
  • 句中上下文(比如,这里的 “mat” 很可能是指地垫)。
向量表示如下:
  • “The” -> [0.2, 0.5, -0.1, …]
  • “cat” -> [0.8, -0.3, 0.4, …]
  • “sat” -> [-0.1, 0.7, 0.2, …]

首先,每个单词都转换成了一个数值表示,称为 “词嵌入”,就像在一个巨大的词库地图上给每个单词定位。

接下来,自注意力机制为每个单词生成了三个特殊的向量:“查询(Query)”(询问我需要什么信息)、“键(Key)”(标示我有什么信息)和 “值(Value)”(实际的含义和上下文)。

然后,通过比较每个单词的 “查询” 向量与其他所有单词的 “键” 向量,自注意力层评估了各个单词之间的相关性,并计算出注意力得分。这个得分越高,表示两个单词之间的联系越紧密。

最后,自注意力层根据注意力得分加权处理 “值” 向量,这就像根据每个单词与当前单词的相关度,取了一个加权平均值。

Tansformer公式:

在这里插入图片描述
在这里插入图片描述

想必各位都用过各大招聘网站投过简历,在这里把公司 HR 招聘过程比做一个注意力计算过程,HR 拿到了甲乙丙丁 4 人的简历,4 人都有自己的擅长,甲擅长 IT,乙擅长跑步,丙擅长游泳,丁擅长演讲,IT、跑步、游泳和演讲就是 key,将这些 key 在每人身上拉平,并赋予能力值,例如甲擅长 IT,乙不擅长 IT,则甲IT的能力值为 0.9,乙IT的能力值为 0.1,这些能力值就是 value
HR 要找一个 IT 能力强的人,HR 的需求就是 query,query 与 key 求点积相似度(再除以根下 dk,mask、softmax、dropout),再与能力值 value 矩阵计算,最终就是公司得到的这 4 人的 JD 匹配值。这就是整个当前大模型注意力机制数学原理!

自注意力机制

通过考虑句中其他单词提供的上下文,自注意力机制为每个单词创建了一个新的、更丰富的表示。这种表示不仅包含了单词本身的含义,还有它如何与句中其他单词关联和受到影响。

多头自注意力机制

多头注意力机制(Multi-Head Attention)可以被理解为有多个分析小组,每个小组关注于词与词之间联系的不同层面。这使得编码器能够全面捕获词义之间的多元关系,从而深化其对语句的理解。

在多头注意力机制中,不同于只使用一个自我关注机制,我们有多个独立的 “头部”(通常是 4 到 8 个)。每个头部都针对每个词分别维护一套查询(Query)、键(Key)和值(Value)向量。
这种机制下的注意力是多样化的:每个头部根据不同的逻辑计算注意力得分,聚焦于词间关系的不同方面:

  • 一个头部可能专注分析语法角色,比如 “fox” 和 “jumps” 之间的关系。
  • 另一个可能关注词序,比如 “the” 和 “quick” 之间的顺序。
  • 还有的头部可能识别同义词或相关概念,例如将 “quick” 和 “fast” 视为相近的词。
    通过结合这些不同头部的观点,每个头部的输出被汇总,综合不同的洞察力
位置编码

位置编码(Positional Encoding)是为了补充 Transformer 无法直接处理词序的不足,加入了每个词在句中位置的信息。可以想象成给每个分析员一张地图,指示他们应该如何按顺序审视词汇

学习词之间的关系:

  • 低频波动揭示词之间的长距离关系。

  • 高频波动则关注紧密相连的词。

即便句子的顺序变化,位置向量也能保持词之间的相对位置关系,使得模型能准确理解词与词之间的连接

FFN

前馈网络(FFN,Feed Forward Network)为模型增添了一层非线性处理,使其能够学习到更为复杂的单词间关系,这些关系可能单凭注意力机制难以捕捉。
通过前面几层的分析,你已经深入理解了句中单词的含义、它们之间的联系以及它们的位置。现在,FFN 就像是一只侦探用的放大镜,准备揭示那些不立即显现的复杂细节

Decoder

在这里插入图片描述

现在,轮到解码器承担任务。与编码器不同的是,解码器面临着额外的挑战:在不预见未来的情况下,逐字生成输出。为此,它采用了以下策略:

  • 掩蔽自注意力:类似于编码器的自注意力机制,但有所调整。解码器仅关注之前已生成的单词,确保不会利用到未来的信息。这就像是一次只写出一个句子的故事,而不知道故事的结局。
  • 编码器 - 解码器注意力:这一机制允许解码器参考编码好的输入,就像写作时回头查看参考资料一样。这确保了生成的输出与原始文本保持一致性和连贯性。
  • 多头注意力和前馈网络:与编码器相同,这些层帮助解码器深化对文本中上下文和关系的理解。
  • 输出层:最终,解码器将其内部表征逐一转化为实际的输出单词。这就像是最后的装配线,把所有部件组合起来,形成期望的结果。

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

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

相关文章

一个好用的短链接都需要具备哪些功能?

大家好,今天我们将会来聊聊一款优秀的短链接,都需要具备的功能,看看是不是你想要的呢? 1. 能够支持自定义域名 现在越来越多的用户都不会选择公用域名了,因为那样风险太大,而会选择用一个他们自己的专用域…

自动控制原理MATLAB:系统分析

控制系统时域分析 (1)稳定性分析 稳定是控制系统的重要性能,也是系统设计过程中的首要问题。线性系统稳定的充分必要条件是:闭环系统特征方程的所有根均具有负实部。在MATLAB中可以调用roots命令求取特征根,进而判别…

C#实战—代码实现收发文件智能化

在信息化的今天,收发电子文档几乎是每个朋友都要经历的事情。比如班级学委和班长需要收发作业,企业管理者需要收发工作文件。但是!!! 每到要交结果时,往往会发现总会有一些人没有即使交上,50个…

8W 1.5KVDC 隔离宽电压输入 DC/DC 电源模块——TP08DA 系列

TP08DA系列电源模块额定输出功率为8W,外形尺寸为31.80*20.30*10.00,应用于2:1,4:1电压输入范围 9-18V,18-36V,36-72V9V-36V和18V-72VDC的输入电压环境,输出电压精度可达1%,具有输出短路保护等功能&#xff…

图卷积神经网络GCN

计算图 通过消息传递的框架构建一个局部邻域的计算图 每个节点分别构建自己的计算图 理论上任意深度,根据六度空间理论,层数一般不会超过六层 基本过程 数学形式 矩阵表示 代码表示 图计算改进 能够听见自己内心的声音 最终形式 如何训…

windows端口复用

1. 概述 使用 HTTP.sys 中的 Net.tcp Port Sharing 服务,配合 WinRM 实现端口复用。 优点: HTTP.sys 为 windows 原生机制, WinRM 为 windows 自带功能,动作较小,不易触发主 动防御。 需要管理员权限。 2. 原理 (…

鞋店小程序商城的作用是什么

鞋与服装一样其购买/复购属性都非常足,每个人生活所需无疑促进了品牌多样化、工厂/店铺商家/个人都有很多,其目的都是为了品牌宣传和将更多货卖给下游/客户。 对消费者来说,买鞋渠道线上线下选择比较多,普遍会以品牌为主&#xf…

✬ ✬ ✬ 宁波推进ISO14000认证:共创美好生态家园✬ ✬ ✬

🌈🌈宁波推进ISO14000认证,🍉共创美好生态家园🤩 😃哇!宁波这个大都市🍓真的在努力推进🚈ISO14000认证啊!🚵‍♀️作为一个环保爱好者&#xff0…

文本批量操作实例:如何实现文本批量拆分?实用方法与技巧分享

在文本处理和数据分析的过程中,我们经常会遇到需要批量拆分大量文本数据的情况。文本批量拆分能够大大提高工作效率,减少重复劳动。下面,我们将通过一个实例来介绍如何实现文本批量拆分,并分享一些实用方法与技巧。 一、实例背景 …

U盘管控软件,禁止员工用U盘拷贝机密数据,防止信息通过U盘泄露

随着信息技术的不断发展,U盘等便携式存储设备已成为我们日常工作中不可或缺的工具。然而,随着U盘的普及,企业面临的信息泄露风险也在不断增加。为了确保企业的信息安全,许多企业开始采用U盘管控软件,禁止员工使用U盘拷…

【YOLOv8改进[Backbone]】使用SCINet改进YOLOv8在黑暗环境的目标检测效果

目录 一 SCINet 1 本文方法 ① 权重共享的照明学习 ② 自校准模块 ③ 无监督训练损失 二 使用SCINet助力YOLOv8在黑暗环境的目标检测效果 1 整体修改 2 配置文件 3 训练 其他 一 SCINet 官方论文地址:https://arxiv.org/pdf/2204.10137 官方代码地址&…

STM32平衡车-MPU6050的DMP库移植

本文目录 一、硬件接线二、需要移植的三个文件夹1. DMP文件夹目录2. IIC文件夹目录3. MPU6050文件夹目录 三、文件内容IO12C.cIO12C.hMPU6050.cMPU6050.hmain.c 四、附录1.更改IIC引脚 一、硬件接线 SCL-- PA11 SDA-- PA12 VCC-- 3.3v GND-- GND 二、需要移植的三个文件夹 1.…

winscp断点续传

背景 超大文件上传, scp可能因为网络或其他原因中断,并且已上传完的文件无法同步。如何断点续传呢?使用winscp软件 winscp安装 百度搜索,自行安装 开启断点续传功能 https://jingyan.baidu.com/article/fdffd1f8395529b2e98ca…

图纸管理的高效策略与最佳实践

图纸管理的高效策略与最佳实践 在工程设计、产品研发和建筑行业中,图纸管理是一项至关重要的任务。随着项目规模的扩大和复杂性的增加,如何高效、有序地管理图纸已成为企业和团队关注的焦点。本文将为您介绍图纸管理的高效策略与最佳实践,帮助…

一文搞懂深度学习:最全神经网络介绍

本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。 01 神经网络介绍 人工神经网络已经彻底改变了机器学习领域,并成为人工智能的基石,它的设计目的是模仿人类大脑的结构和功能&a…

ubuntu_Docker安装配置

什么是docker? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有…

『ZJUBCA Collaboration』WTF Academy 赞助支持

非常荣幸宣布,浙江大学区块链协会收到WTF Academy的赞助与支持,未来将共同开展更多深度合作。 WTF Academy是开发者的Web3开源大学,旨在通过开源教育让100,000名开发者进入到Web3。截止目前,WTF开源教程在GitHub收获超15,000 ⭐&a…

【LAMMPS学习】八、基础知识(5.9)LAMMPS 近场动力学

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。 …

Ubuntu软件中心不显示

装完Ubuntu后没有Software -- 更新apt sudo apt update -- 升级apt sudo apt upgrade -- 重启 sudo systemctl reboot-- 安装snap sudo apt-get install snap -- 安装软件商店 sudo snap install snap-store -- 更新软件商店 sudo snap refresh snap-store安装成功&#xff01…

学QT的第二天~

小黑子鉴别界面 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { qDebug()<< "你好&#xff0c;真爱粉"; this->close(); } else { speecher->sa…