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

Transformer学习(1):注意力机制

文章目录

  • 什么是注意力
  • 如何实现注意
  • 注意力的计算过程
  • 总结

什么是注意力

在一张图像中,包含了各种信息,而我们会自动关注重要的信息。下图是注意力热力图,可以发现人们会注意兔子的脸这些重要信息。
在这里插入图片描述

而在深度学习中,输入数据包含了重要的数据与不重要的数据,但对于一个模型来说,它不知道哪些数据是重要的。
因此提出了注意力机制,如何在深度学习模型上使用注意力,让模型关注于重要的数据。

如何实现注意

  • Query(查询)查询的范围,可以理解为要查询什么特征。自主提示,即主观意识的特征向量
  • Key(键):被对比的项,也就是被查询物体的特征。非自主提示,即被查询物体的突出特征信息向量
  • Value(值)被查询的物体本身,也就是原图上的各个物体。代表被查询的物体本身的特征向量,通常和Key成对出现

在这里插入图片描述

要实现注意力机制,也就是要得到Q与V的相似度哪些V对Q更加重要

注意力的计算过程

① 计算Q与K的相似度
一般是使用点乘(内积)来计算Q与K中的每个事物的相似度,得到Q与 k 1 k_1 k1的相似度 s 1 s_1 s1,Q与 k 2 k_2 k2的相似度 s 2 s_2 s2等等。
然后对得到的相似度执行softmax归一化操作: s o f t m a x ( s 1 , s 2 , . . . , s n ) softmax(s_1,s_2,...,s_n) softmax(s1,s2,...,sn)得到n个概率 ( a 1 , a 2 , a n ) (a_1,a_2,a_n) (a1,a2,an),也就是各个K对Q的重要性
在这里插入图片描述
② 汇总各个物体的相似度
通过前面的计算,我们得到了各个K与Q的相似度,相当于我们得到了各个V与Q的相似度,也就是各个V的权重,此时Q已经失去作用。然后我们需要将这些相似度进行汇总,得到一张图像,这张图像上包含了哪些信息重要与不重要。

计算方法 a i a_i ai v i v_i vi相乘,再相加,得到新的 V ′ V' V
V ′ = a 1 ∗ v 1 + a 2 ∗ v 2 + . . . + a n ∗ v n V' = a_1*v_1+a_2*v_2+...+a_n*v_n V=a1v1+a2v2+...+anvn
在这里插入图片描述

这样的话,就得到了一个新的 V’,这个新的 V’ 就包含了哪些更重要与更不重要的信息在里面,然后用 V’ 代替 V

一般来说K=V,但在Transformer中,K可以!=V,但K与V必须存在某种联系,只有这样才能通过QK的点乘来指导V哪些重要与不重要。

计算过程的问题与解决方法
在计算出QK后并进行softmax操作时,若各个概率值相差大则会导致softmax输出的值很极端
因此需要对QK点乘的值进行缩放操作(scale),公式如图所示,其中 d k d_k dkK的通道数
在这里插入图片描述
通过缩放就可以避免softmax操作的输出极端,注意力机制的结构变为这样。
在这里插入图片描述

总结

本质上来说,注意力机制就是网络根据提供的信息Q,得到各个V的一个权重,这个权重代表着Q与V的相关性。


http://www.kler.cn/a/301874.html

相关文章:

  • 进程信号
  • react 中 useCallback Hook 作用
  • 前后端、网关、协议方面补充
  • Flutter:Widget生命周期
  • 0 -vscode搭建python环境教程参考(windows)
  • 从电动汽车到车载充电器:LM317LBDR2G 线性稳压器在汽车中的多场景应用
  • Linux——网络基础Socket编程
  • 10个Python办公自动化案例
  • Unity3D 服务器AStar寻路客户端位置同步显示验证详解
  • C语言学习笔记
  • 运维学习————运维日志分析系统es——Elasticsearch
  • GORM安全-保护你的应用免受SQL注入攻击
  • C语言:乘法口诀表的一些实现方法
  • springboot基础-logback组件配置使用
  • 2024年9月12日(k8s环境及测试 常用命令)
  • 康谋分享 | 汽车仿真与AI的结合应用
  • 1.SpringCloud与SpringCloud Alibaba
  • Java面试篇基础部分-Java中的异常以及异常处理
  • 初识爬虫3
  • 【区块链通用服务平台及组件】信息数据流转验真技术研究项目 | FISCO BCOS应用案例
  • HCIA--实验十一:单区域OSPF路由实验
  • 基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统
  • 【菜菜的sklearn机器学习】(2)回归树
  • 设计模式 22 模板方法模式
  • electron 客户端 windows linux(麒麟V10)多系统离线打包 最新版 <一>
  • 【系统架构设计师】建造者模式(Builder Pattern)