注意力机制

概念没什么好说的,反正大家都会说,具体实战怎么写才是最为重要的

1.自注意力

假设有一组数据,都是一维的向量,这个向量可能是一个样本,可能是其他什么,都无所谓。

假设有一组一维向量x1,x2,x3,x4,x5;

第一步:他们两两之间先进行点积,则可以得到一个5*5的矩阵,每一个向量都有一个与其他向量对应的分数,这个分数叫做注意力分数,比如x3的注意力分数为[x3.*x1,x3.*x2,x3.*x3,x3.*x4,x3.*x5],要记住,这是内积,也就是点乘。

第二步:进行缩放,这一步可以用各种方法,比如使用softmax函数

第三步:加权求和,对每一组向量进行加权求和

#X是一维向量
def softmax(X):return np.exp(X)/np.sum(np.exp(X))def self_attention(X):output = np.zeros_like(X)for i, pivot_vector in enumerate(X):scores = np.zeros(len(pivot_vector))for j, vector in enumerate(X):#求第i向量其他向量之间的内积scores[j] = np.dot(pivot_vector, vector)scores /= np.sqrt(X.shape[1])#scores = softmax(scores)#对内积进行缩放new_vector = np.zeros(shape=pivot_vector.shape)for j, x in enumerate(X):#利用注意力分数加权求和--也就是特征的重要性程度new_vector += x * scores[j]output[i] = new_vectorreturn output

看代码比较容易理解,第二步的缩放过程就是用注意力分数除以特征个数的平方,然后经过softmax缩放,得到当前向量的分数,相当于它和其他向量之间的关系分析(姑且这么形容吧),第三步的求和,是用每一组的向量去乘以对应的分数,然后累加起来相当于关联到了了每一个特征向量的内容(个人理解),关联度是按照之前的分数来的。

查询-键-值模型

outputs = sum(C* pairwise(A, B))

这个表达式是上面那一段代码的总结,可以解释为对于A的每一个向量,与B的相关程度,然后利用这个相关程度的分数对C进行加权求和,A相当于查询(Q),B相当于键(K),C相当于值(V)

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

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

相关文章

python读取图片

要在Python中读取图片,你可以使用第三方库Pillow(Python Imaging Library,PIL)或OpenCV。以下是使用这两个库的示例: 使用Pillow库读取图片: 首先,确保你已经安装了Pillow库。如果还没有安装&am…

AI 编码助手 Codewhisperer 安装步骤和使用初体验

文章作者:为了自己加油 最近亚⻢逊云科技推出了一款基于机器学习的AI编程助手 Amazon Code Whisperer,可以实时提供代码建议。在编写代码时,它会自动根据现有的代码和注释给出建议。Amazon Code Whisperer与 GitHub Copilot 类似,…

Vite的安装与使用

Vite也是前端的构建工具,相较于Webpack,Vite使用了不同的运行方式: 开发时并不对项目进行打包,而是直接采用ESM的方式来运行项目。在项目部署时再进行打包。 因此vite的执行速度相较于Webpack快了许多,操作起来也比W…

华为OD:求字符串中所有整数的最小和

输入字符串s,输出s中包含所有整数的最小和。 说明: 字符串s,只包含a-z A-Z-; 合法的整数包括: 正整数一个或者多个0-9组成,如 0 2 3 002 202负整数负号-开头,数字部分由一个或者多个0-9组成…

SQL中:提示不允许修改表结构,如何更改

SQL:不允许修改表结构 步骤图例注意 步骤 选择菜单栏中的“工具”-“选项”,在选项对话框左栏中找到“设计器”,在设计器右边取消勾选“阻止保存要求重新创建表的更改”即可。 图例 注意 设计表时,尽量一次性设计成功&#xff…

Android12之解封装NuMediaExtractor::setDataSource过程(四十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

unity 桌面程序

using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using UnityEngine; public class chuantou : MonoBehaviour { [DllImport(“user32.dll”)] public static extern int MessageBox(IntPtr hwnd,string t…

Gram矩阵

Gram矩阵如何计算 Gram 矩阵是由一组向量的内积构成的矩阵。如果你有一组向量 v 1 , v 2 , … , v n v_1, v_2, \ldots, v_n v1​,v2​,…,vn​,Gram 矩阵 G G G 的元素 G i j G_{ij} Gij​ 就是向量 v i v_i vi​ 和向量 v j v_j vj​ 的内积。数学上&#x…

Springboot ruoyi配置mysql备份定时任务

一、RuoYiConfig.class 新增获取备份路径方法 public static String getDataBaseBackUp() {return getProfile() "/dbBackUp";} 二、RyTask:新增备份数据库方法 mySqlDump方法:参数详见代码 package com.ruoyi.quartz.task;import cn.hut…

【动手学深度学习-Pytorch版】序列到序列的学习(包含NLP常用的Mask技巧)

序言 这一节是对于“编码器-解码器”模型的实际应用,编码器和解码器架构可以使用长度可变的序列作为输入,并将其转换为固定形状的隐状态(编码器实现)。本小节将使用“fra-eng”数据集(这也是《动手学习深度学习-Pytor…

linux用户和权限命令学习记录

文章目录 版权声明root用户(超级管理员)su和exit命令sudo命令为普通用户配置sudo认证 用户、用户组管理用户组管理getent命令 查看权限控制认知权限信息 修改权限控制chmod修改文件、文件夹的权限权限的数字序号chown修改所属用户、用户组 版权声明 本博…

华为NFC设置教程(门禁卡/公交卡/校园卡等)

今天把华为NFC设置教程分享给大家 出门带门禁卡、校园卡、银行卡、身份证……东西又多,携带又麻烦,还容易搞丢,有没有一种方法可以把它们都装下?有!只要一部手机,出门不带卡包,各种证件&#x…

机器学习第十课--提升树

一.Bagging与Boosting的区别 在上一章里我们学习了一个集成模型叫作随机森林,而且也了解到随机森林属于Bagging的成员。本节我们重点来学习一下另外一种集成模型叫作Boosting。首先回顾一下什么叫Bagging? 比如在随机森林里,针对于样本数据,…

如何通过axios拦截器,给除了登录请求以外,axios的所有异步请求添加JWT令牌!

在 Vue 项目中配置除了登录请求以外的所有请求的令牌,通常涉及到在请求头中添加令牌(Token)信息。这可以通过使用 Axios 或其他 HTTP 请求库来实现。以下是一般的步骤: 1. **安装 Axios**: 如果你还没有安装 Axios&a…

java 从字符串中 输出连续的整数

java 从字符串中 输出连续的整数 //编写程序,从键盘输入一个字符串,内有数字和非数字字符 // 如xy12ab93?5789$,连续的数字为一个整数。 // 例如:字符串中有3个整数:12 93 5786.统计整数个数,并依次输出 import java…

Java中的继承是什么?

在Java中,继承是一种面向对象编程的概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。通过继承,子类可以获得父类的属性和方法,并且可以添加自己的特…

使用命令行快速创建Vite项目

一、构建项目 在终端中使用如下命令行: npm create vite 二、定义项目名称 三、选择项目类型 Vanilla是我们常用的JavaScript,Vue和React是常用前端框架,可以根据自己的需要进行选择 通过上下键进行选择,按下回车进行确认 创建…

js 采集pcm,并封装为wav,包含重采样,提供下载

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>录制音频并下载为WAV文件</title…

docker容器安装MongoDB数据库

一&#xff1a;MongoDB数据库 1.1 简介 MongoDB是一个开源、高性能、无模式的文档型数据库&#xff0c;当初的设计就是用于简化开发和方便扩展&#xff0c;是NoSQL数据库产品中的一种。是最 像关系型数据库&#xff08;MySQL&#xff09;的非关系型数据库。 它支持的数据结构…

一种便捷的爬虫方法

发现了种快捷的爬虫方法 1.在“检查-Network”要模拟的post请求记录右键-Copy-Copy as cUrl(bash) 2.替换下面代码中文本内容&#xff0c;搞定 import uncurl import requestsresponseeval(uncurl.parse( curl http://xxxxx \-H Accept: application/json, text/plain, */* …