跟李沐学AI:注意力机制、注意力分数

news2024/11/15 19:32:28

目录

不随意线索

随意线索

注意力机制

非参注意力池化层

参数化的注意力机制

注意力机制总结

注意力分数

拓展到高维度

加性模型(Additive Attention)

点积注意力机制(Dot Product Attention)

注意力分数总结


不随意线索

不随意线索指的是那些由外部环境直接提供的信息,这些信息往往不需要经过复杂的认知处理就能吸引人的注意力。在计算机视觉中,这可能包括图像中的亮度变化、颜色对比度、运动等直观的视觉特征。

随意线索

随意线索指的是由内部目标驱动的注意力调整。在计算机视觉任务中,这意味着模型会根据任务的要求或先前的知识来选择关注某些区域。例如,在图像分类任务中,模型可能会根据已知的类别特征来寻找最有可能包含该类别的区域。这种类型的注意力更类似于有目的性的搜索行为,即模型根据自身的任务目标来选择性地聚焦于某些输入信息。

注意力机制

卷积、全连接、池化层都只考虑不随意线索。注意力机制则显示地考虑随意线索。

随意线索被称之为查询(query),每个输入是一个值(value)和不随意线索(key)。通过注意力池化层来偏向性地选择某些输入。

非参注意力池化层

非参数注意力池化层(Non-parametric Attention Pooling Layer)是神经网络中使用的一种注意力机制类型,其特点是不依赖于任何可训练的参数。这种类型的注意力机制通常用于从输入数据中提取关键信息,同时减少参数的数量,使得模型更加轻便且易于训练。

给定数据(x_i, y_i),i=1,\dots,n。最简单的实现是平均池化:f(x)=1/n\sum {y_1}。更好地方案是Nadaraya-Watson提出的核回归:

 其中K()是核函数。若使用高斯核:

那么相当于进行一次Softmax计算:计算x和候选xi的距离,在此基础上进行Softmax,将输出值作为权重与yi相乘。

参数化的注意力机制

在非参注意力机制的基础上引入一个可以学习的w:

注意力机制总结

心理学认为人通过随意线索和不随意线索选择注意点。

注意力机制中通过query(随意线索)和key(不随意线索)来偏向性地选择输入。一般可写作:

f(x)=\sum a(x, x_i)y_i。其中a(x, x_i)是注意力权重。

注意力分数

注意力分数是注意力机制中的一个关键概念,本质上是通过一系列函数计算得来的结果。它是用来量化输入序列中各个元素重要性的数值。

在刚刚的参数化注意力机制中,-\frac{1}{2}(x-x_i)^2的结果便是注意力分数。 

注意力机制具体流程如下:

  • 计算注意力分数:score = f(query, key)
  • 计算注意力权重:attention_weights = softmax(scores)
  • 进行加权求和,从而生成一个加权后的上下文向量:
  • context_vector = sum(attention_weights * value) for each value in values

拓展到高维度

加性模型(Additive Attention)

加性模型使用了一个额外的前馈神经网络来计算注意力分数。

在加性模型中,注意力得分通过以下步骤计算:

线性变换:首先,查询向量 qq 和每个键向量 kiki​ 分别经过不同的线性变换(即乘以权重矩阵)。这可以表示为:q'=W_qqk'=W_kk

非线性激活:接下来,将变换后的查询向量和键向量相加,并通过一个非线性激活函数,通常是双曲正切(tanh),来处理这个结果:a_i=tanh(q'+k'_{i})

评分:最后,将上一步的结果 ai乘以另一个参数化的向量v,得到最终的注意力得分。这可以通过以下公式表示:score_i=v^{T}a_i

这里的Wq和Wk是学习到的权重矩阵,vv 是一个可训练的参数向量。整个过程可以用一个简单的数学表达式概括如下:

等价于将query和key合并起来后放入一个隐藏层大小为h,输出大小为1的但隐藏层MLP。因此k,q可以形状不同。

点积注意力机制(Dot Product Attention)

如果q和k长度相同,那么a(q, k_i)=<q, k_i>\sqrt{d}

向量化版本:

注意力分数总结

注意力分数是query和key的相似度,注意力权重是注意力分数softmax后的结果

注意力分数分为加性模型和点积模型 

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

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

相关文章

vscode 顶部 Command Center,minimap

目录 vscode 顶部 Command Center 设置显示步骤: minimap设置 方法一:使用设置界面 方法二:使用命令面板 方法三:编辑 settings.json 文件 左侧目录树和编辑器字体不一致: vscode 顶部 Command Center Visual Studio Code (VSCode) 中的 Command Center 是一个集中…

240912-设置WSL中的Ollama可在局域网访问

A. 最终效果 B. 设置Ollama&#xff08;前提&#xff09; sudo vim /etc/systemd/system/ollama.service[Unit] DescriptionOllama Service Afternetwork-online.target[Service] ExecStart/usr/bin/ollama serve Userollama Groupollama Restartalways RestartSec3 Environme…

Python redis 安装和使用介绍

python redis安装和使用 一、Redis 安装1.1、Windows安装 二、安装 redis 模块二、使用redis 实例1.1、简单使用1.2、连接池1.3、redis 基本命令 String1.3.1、ex - 过期时间&#xff08;秒&#xff09;1.3.2、nx - 如果设置为True&#xff0c;则只有name不存在时&#xff0c;当…

fiddler抓包08_抓Android手机请求

课程大纲 手机抓包&#xff0c;电脑端的设置和IOS端相同&#xff0c;设置一次即可&#xff0c;无需重复设置。 前提&#xff1a;电脑和手机连接同一个局域网 土小帽电脑和手机都连了自己的无线网“tuxiaomao”。 Step1. 电脑端设置 ① 打开Fiddler - 开启抓包&#xff08;F12…

django项目——图片上传到阿里云OSS对象存储

文章目录 实现图片上传到阿里云OSS对象存储1. 创建阿里云OSS对象存储2. 查询获取接口访问key和秘钥3. 安装阿里云的SDK集成到项目中使用3.1 python直接操作oss23.2 django配置自定义文件存储上传文件到oss 实现图片上传到阿里云OSS对象存储 1. 创建阿里云OSS对象存储 开发文档…

重磅!人工智能等级考试来了,考试免费,上海落户可以加分

目录 简要介绍 一、关心的问题 1. 什么是上海市高等学校信息技术水平考试&#xff1f; 2. 考试分几个级别&#xff1f;有哪些科目&#xff1f; 3. 哪些人可以进行报名&#xff1f; 4. 每名学生可以报考几个科目&#xff1f; 5. 有没有考试大纲&#xff1f; 6. 考试是否有…

[笔记]23年度展会信息— 吊钩 起升机构

1.吊钩的规格参数 5吨吊钩重26公斤 10吨64公斤。 另外一套型号&#xff0c;更轻&#xff1a; 不确定是结构设计还是用钢材质达到了减重效果。 看看重载双滑轮吊钩&#xff1a; 50吨&#xff0c;400公斤&#xff0c;只是吊钩。 然后是行车吊钩与钢丝绳的直径。这在计算空载吊…

Web Components之继承

我们在使用Web Components自定义组件的时候&#xff0c;我们需要继承HTMLElement这个浏览器内置对象&#xff0c;但是如果我要一些高级封装&#xff0c;给组件内置一些方法的话。我们就需要使用继承的方式&#xff0c;在父类中实现基本功能的封装。 1 父类的封装 以下是我的继…

一文搞懂UEFI

Hi&#xff01;早哦。今天又是宠读者的一天&#xff0c;应允聊聊UEFI。 文章目录 前言UEFI是什么&#xff1f;传统BIOSBIOS作为标准BIOS作为实现BIOS的工作原理传统BIOS的局限性传统BIOS启动过程 BIOS VS UEFIUEFI&#xff1f;UEFI概念EFI 系统分区EFI 变量EFI 的启动过程EFI 变…

【高分系列卫星简介——高分三号卫星(GF-3)】

高分三号卫星&#xff08;GF-3&#xff09; 高分三号&#xff08;GF-3&#xff09;是我国首颗高分辨率、C频段、多极化合成孔径雷达&#xff08;SAR&#xff09;卫星&#xff0c;由中国空间技术研究院北京空间飞行器总部设计部研制&#xff0c;并于2016年8月10日成功发射。该卫…

thop计算模型复杂度(params,flops)

thop安装 -pip install thop在线安装失败 -离线安装 github网址&#xff1a; pytorch-OpCounter:Count the MACs / FLOPs of your PyTorch model. - GitCode python setup.py install 测试&#xff1a; from options import config as c import os os.environ["CUD…

【Flink实战】flink消费http数据并将数组展开多行

文章目录 一. 需求描述二. 方案思路1. 解决思路2. flink json 解析2.1. 通过json path解析非array数据2.2. 通过json path解析array数据 3. CROSS JOIN逻辑 三. 方案实现1. http json数据样例2. flink sql 说明 一. 需求描述 flink消费http接口的数据&#xff0c;将json中的数…

【JavaEE初阶】多线程7(面试要点)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 常见的锁策略 乐观锁vs悲观锁 重量级锁vs轻量级锁 挂起等待锁vs自旋锁 公平锁vs非公平锁 可重入锁vs不可重入锁 读写锁 synchronized的加锁过程 锁升级的过程 偏向锁 …

博途TIA v18下载时,需要重启才能安装下载路径是灰色改不了

一、需要重启才能安装 删除下面注册表P开头的文件&#xff1a; 二、下载路径是灰色改不了 注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion里找到C:\Program Files或者C:\Program Files&#xff08;x86&#xff09;&#xff0c;具体哪个看安装的时候对应…

【面向对象】设计原则

单一职责&#xff1a;低耦合&#xff0c;高内聚。一个类不要负责太多的功能&#xff0c;否则会导致类内部耦合度高&#xff0c;不利于扩展&#xff1b;开闭原则&#xff1a;对扩展开放&#xff0c;对修改关闭。扩展新功能时&#xff0c;不建议修改原有的代码&#xff0c;建议通…

【CSS】样式

文本color 颜色font-size 大小font-family 字体font-style 样式font-weight 加粗text-decoration 下划线text-shadow 阴影text-transform 大小写变换text-indent 缩进text-align 水平对齐 、vertical-align垂直对齐text-overflow 溢出word-wrap 换行 、word-break 截断 、white…

GAMES101(15节)

Irradiance辐射度量学 辐射度量学在渲染领域&#xff0c;可以帮助理解基于物理的光照模型 radiant energy辐射能量Q&#xff0c;累计总能量&#xff08;单位J joule焦耳&#xff09;&#xff0c;就像太阳能板&#xff0c;光照时间越长接收能量越多&#xff0c;收到的能量总和…

Vue点击按钮生成pdf文件/Vue点击按钮生成png图片

本次案例是vue的点击生成pdf文件和png格式的图片 一、生成pdf文件案例 看代码之前&#xff0c;我们肯定得需要看看&#xff0c;效果图是什么的啦&#xff0c;这样子才能先看看自己想要实现的效果是不是这样子的&#xff01;上效果图嘿嘿嘿~ A、实现的效果图 这是页面&#…

【M-LOAM学习】

M-LOAM(INITIALIZATION) Article Analysis Scan-Based Motion Estimation 通过在consecutive frame (each LiDAR)&#xff08;因为omp parallel&#xff09;中寻找correspondences然后通过最小化所有考虑feature之间residual error的transformation between frame to frame 针…

java(3)数组的定义与使用

目录 1.前言 2.正文 2.1数组的概念 2.2数组的创建与初始化 2.2.1数组的创建 2.2.1数组的静态初始化 2.2.2数组的动态初始化 2.3数组是引用类型 2.3.1引用类型与基本类型区别 2.3.2认识NULL 2.4二维数组 2.5数组的基本运用 2.5.1数组的遍历 2.5.2数组转字符串 2.…