首页 > 其他分享 >注意力机制

注意力机制

时间:2024-01-24 11:12:09浏览次数:23  
标签:体重 矩阵 我们 key 哔哩 机制 注意力

注意力机制

有一个字典(Python中称为字典,也叫键值对)。我们记为(key, value)。

比方说我们有下列腰围体重数据,我们又有一个样本,他的腰围是57,那么我们预测他的体重值是多少呢?或者说我们怎么预测他的体重值呢?

image

由于57到56和58的距离一样,那么我们可以预测他的体重值为它们对应体重的平均值,即(43 + 48) / 2 = 0.5 * 43 + 0.5 * 48 = 45.5,注意此处,由于56和58离57非常接近,所以我们自然会非常"注意"它们,所以我们分给它们的注意力权重各为0.5。但是这里有一个问题,我们没有用上其他的键值对

我们好像要调整一下注意力权重,那么我们该怎么计算权重呢?

image

简单理解,体重预测值f(q)就是预测值的key与每个已知值的key所计算出来的权重再乘以与已知值相对应的value再进行求和。

image

而其中的权重就是α(q, ki)

image

我们将上面的q称为请求(query),k叫做键(key),v叫做值(value)。

q,k,v在多维的情况下也是类似的。

假设q是二维的,由于q1和k1都是二维向量,注意力分数可以使以下几种,如图所示:

image

以点积模型为例:

image

image

为了方便,我们使用矩阵来表示:

image

为了缓解梯度消失问题,我们还会除以一个特征维度,我们将其称为“缩放点积注意力模型”

image

如果Q、K、V是同一个矩阵会发生什么?那就是自注意力,

image

我么用X来表示这个矩阵,那么有:

image

三个可以训练的矩阵:

image

image

image

写在最后

以上截图和文字均来自于哔哩哔哩:

【注意力机制的本质|Self-Attention|Transformer|QKV矩阵-哔哩哔哩】 https://b23.tv/W4FwAY4

标签:体重,矩阵,我们,key,哔哩,机制,注意力
From: https://www.cnblogs.com/wephiles/p/17984018

相关文章

  • Java垃圾回收机制:理解与实践
    Java语言的一个显著特点是其自动内存管理,即垃圾回收(GarbageCollection,GC)。GC可以自动监控每个对象的引用情况,当一个对象不再被引用时,GC会自动释放该对象占用的内存。这大大简化了开发者的内存管理工作,但也带来了性能上的挑战。本文将探讨Java中的垃圾回收机制,并通过代码示例解释......
  • 捕获异常和异常处理机制
    publicclassDemo01{  publicstaticvoidmain(String[]args){    inta=1;    intb=0;    //ctrl+alt+T    //假设要捕获多个异常:从小到大    try{//监控区域      newDemo01().a();   }catch(Erro......
  • 读论文-基于注意力机制的对抗性协同过滤推荐算法
    前言今天读的论文为一篇名叫《基于注意力机制的对抗性协同过滤推荐算法》,文中主要介绍了一种基于相关注意力的协同过滤推荐算法,该算法结合深度学习中的注意力机制为不同物品分配不同的权值来捕获与目标物品最相关的物品,探索不同物品的权重对模型预测的影响并以此提升推荐的准确......
  • 背压机制
    SparkStreaming是个准实时、微批量的流式处理架构,数据是向水流一样一直不断流过来,那么我们该怎么配置数据的接收速率?Spark1.5以前的版本,用户若需要限制Receiver的数据接收速率,可以通过设置静态配置参数“spark.streaming.receiver.maxRate”的值来实现,这个配置虽可以通过限制接......
  • [转帖]MySQL多版本并发控制机制(MVCC)-源码浅析
    https://zhuanlan.zhihu.com/p/144682180 MySQL多版本并发控制机制(MVCC)-源码浅析前言作为一个数据库爱好者,自己动手写过简单的SQL解析器以及存储引擎,但感觉还是不够过瘾。<<事务处理-概念与技术>>诚然讲的非常透彻,但只能提纲挈领,不能让你玩转某个真正的数据库。感谢c......
  • JVM类加载机制
    类加载器引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar、charsets.jar等扩展类加载器:负责加载支撑JVM运行的位于JRE的lib下的ext扩展目录下的jar包应用程序类加载器:负责加载ClassPath路径下的类包,主要是自己写的代码自定义类加载器:负责加载自定义......
  • Java_讨论类加载器的双亲委派机制
    双亲委派机制简而言之,当某个类加载器在接到加载请求时,优先会将任务委托给父类加载器,一直到最顶层的类加载器,如果不能成功加载,才会尝试自己加载java.lang.ClassLoaderprotectedClass<?>loadClass(Stringname,booleanresolve)throwsClassNotFoundException{synchron......
  • 中断机制小总结
    方法介绍publicvoidinterrupt()实例方法Justtosettheinterruptflag实例方法仅仅是设置线程的中断状态为true,发起一个协商而不会立刻停止线程publicstaticbooleaninterrupted()静态方法Thread.interrupted();判断线程是否被中断并清除当前中断状态(做了两件......
  • 中断机制之中断协商案例深度解析 上
    说明具体来说,当一个线程调用interrupt()时:如果线程处于正常活动状态,那么会将该线程的中断标志设置为true,仅此而已。被设置中断标志的线程将继续正常运行,不受影响。所以,innerupt()并不能真正的中断线程,需要被调用的线程自己进行配合才行。如果线程处于被阻塞状态(例如处于sl......
  • 中断机制之通过interrupt实现线程中断停止
    如何停止中断运行中的线程?首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了interrupt实现线程中断停止用isInterrupted判断当前线程是否被中断,用interrupt()设置线......