首页 > 其他分享 >注意力机制创新思维分析

注意力机制创新思维分析

时间:2024-12-11 22:00:53浏览次数:4  
标签:思维 权重 一个 attention 矩阵 归一化 机制 注意力

参考:

全网最牛的注意力机制创新思维分析,看了立马提走一篇二区_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV15x4y1h7RX/?vd_source=3ad05e655a5ea14063a9fd1c0dcdee3e

2.2小节

如上图所示,可以修改的方向主要有3个方向:

1. attention内部的改进:

attention首先接受q k v三个输入,通过矩阵乘法度量向量之间的相似性;除了点积能度量相似性之外,还有余弦相似度,欧式距离,皮尔逊相关系数来度量。根据你的数据类型还可以选择DTW等相关算法来替换掉,原始的点积操作运算。再或者你还可以自己构造一个度量函数。e.g. : α=sigmoid(MLP(a,b)),也即你可以通过一个全连接层MLP,把要建立相关性的a和b作为输入,然后后面再接一个sigmoid激活函数,这样的话,其结果α也可以被看作一个权重。当然,点积的效率是最高的,如果大家不缺那点计算资源,那么就可以按照此说法修改,修改后故事就可以多写一点了。三四区的审稿人会给你一个面子的。

同时,原始的点积得到注意力矩阵之后,应该通过softmax归一化权重表示,以把把它们拉到同一个量纲上面,避免过大或过小的权重值;同样归一化操作除了softmax,也可以通过sigmoid和max归一化等;sigmoid就是一个天然的权重生成器;当然上图1.2部分的归一化,并没有太多的创新价值,除非你能在你的任务上,通过实验或理论证明为什么你是用的不同的归一化方法 比softmax要好。这样才更好一些。

同样,softmax归一化权重之后,还要通过注意力权重矩阵对value矩阵进行加权,得到最终的输出;我们都知道,归一化的注意力矩阵是n*n的,与value矩阵进行一个矩阵乘法;第一行与第一列相乘更新第一个节点的第一个特征,第一行与第二列相乘来更新第一个节点的第二个特征,每一个特征的更行,都是对所有节点进行一个加权平均,而真实计算时速度很慢;可能一些微小的计算负担就能够影响模型在实际系统上的部署,为了降低部署负担,能否为每一个节点去学习一个权重表示;而预算中有N个节点,我们可以各位N个节点的每一个节点去学习一个权重。这样的话,注意力矩阵就不是N*N了,而是N*1,;这样不仅计算加权平均时计算负担小,而且很有可能计算注意力矩阵的一步时,也就不需要N*N的复杂度了,

2.attention结构的改进:

 这方面主要对attention结构方面修改,我们都知道attention核心是加权平均,也即先有权重,然后再加权求和;它们的优点是拥有一个全局感受野;而对这一类的改进来说,权重的计算已经不是最重要的了,它们可能需要权重,也可能不需要权重;但是他们保丽龙attention依然具有全局感受野的一个优点;更新之后具有全局上下文表示,这是他们的特点;这一类主要以线性注意力为主,新手很难在此处改进创新,但是可以考虑把线性注意力迁移到自己任务上;个人感觉:换一个领域,换一个数据集,在保证性能的基础上,降低计算复杂度还是一个很好的切入点的。

3. attention应用的改进:

 此处的改进上限很高,下限很低。下限低主要是指将attention直接应用到你的任务上,现在来看这种是比较low的,因为用的人太多了。那么attention引用有什么创新呢?需要注意的是attention接受的是qkv三个输入,那就说明其输入可以是多样化的,也即把其应用于任何一个不同的任务,其都具有不同的意义。所以思路有2:

3.1. 我们要问一下,qkv是什么,qkv怎么来的?那么我们考虑到几乎所有的任务,都存在一个局部和全局特征(也即细粒度和粗粒度问题),那么我们可以定义K矩阵为局部特征或者全局特征表示,此时 q和K再相乘,就可以使得q矩阵拥有更大的感受野。再进一步,我们想要实现多尺度的任务表示,那么我们就可以考虑堆叠多个这样的注意力层,在任何一个不同的注意力层,我们都可以是的K矩阵具有不同的局部特征表示,而局部特征表示可以通过一个简单的卷积层来实现,这样的话,我们就能够使得模型具有一个多尺度的感受野,还能够降低计算复杂度,这个卷积操作不使用padding操作的话,长度会缩短,就会提高计算效率。同样,Q矩阵也可以具有局部特征表示。那么我们就可以保持k矩阵不变,通过卷积来提取q矩阵的一个局部特征表示,如此同样操作,堆叠具有多个不同感受野的注意力层,也能有提取多尺度的特征表示。

 

标签:思维,权重,一个,attention,矩阵,归一化,机制,注意力
From: https://www.cnblogs.com/Li-JT/p/18600728

相关文章

  • 信号与槽机制的使用
    在现代GUI开发中,Qt框架因其强大的功能和灵活性而备受欢迎。Qt的信号与槽(SignalandSlot)机制是其核心特性之一,用于实现对象间的通信。本文将详细介绍这一机制,并结合实际使用场景讲解其应用方式。文章目录一、什么是信号与槽信号二、信号与槽的连接三、Qt::ConnectionT......
  • 【逻辑思维】小球称重找异常
    小球称重找异常情况一有12个小球,已知有1个小球比其他小球偏重,使用天平,最少要多少次才能确保找到那个小球?问题陈述我们有12个小球,其中1个比其他小球偏重。使用天平,最少需要多少次才能确保找到那个偏重的小球?初步思考首先,我需要理解问题的要求:总共有12个小球,其中1个是......
  • 浅谈 Java 垃圾回收机制
    浅谈Java垃圾回收机制文章目录浅谈Java垃圾回收机制一、引言二、垃圾回收算法要解决的问题(一)内存泄漏问题(二)悬空指针问题三、常见的垃圾回收算法(一)标记-清除算法(Mark-SweepAlgorithm)(二)复制算法(CopyingAlgorithm)(三)标记-整理算法(Mark-CompactAlgorithm)(四)分代......
  • 嵌入式处理器程序设计(处理思路及经验篇)——开发必备的特定设计思维及POSIX标准
    嵌入式系统的核心是嵌入式处理器。嵌入式处理器一般划分为如下类型:嵌入式系统分层结构一般可如下:两层结构:硬件层、应用层(软件层)                             诸如: MCU裸机系统三层结构:硬件层(原厂芯片用库......
  • 深入解析 Maven 依赖解析机制:本地仓库、私服与中央仓库
    深入解析Maven依赖解析机制:本地仓库、私服与中央仓库在使用Maven进行项目构建时,依赖管理是一个核心功能。Maven通过本地仓库、远程仓库(如私服)和中央仓库的协同工作,确保项目所需的依赖能够被正确下载和使用。然而,很多开发者对Maven的依赖解析顺序并不十分清楚。本文将详细......
  • 成事思维模型:思维力、实践力、心力
    人生不如意之事,十有八九,这是客观规律。无论是工作中的问题,还是人际关系的困扰,甚至还有突如其来的变故,总会让我们陷入痛苦和烦恼。面对这些难以解决的烦心事,不少人选择逃避、躺平,然而,若不勇敢面对并解决,人生的难题必将一次次卷土重来。那么,如何才能做到不怕事、解决问题呢?《......
  • 举例说明+运算符的运行机制
    在前端开发中,+运算符主要有两种作用:加法和字符串连接。它的运行机制取决于操作数的数据类型。1.加法:当两个操作数都是数字或可以转换为数字的值时,+运算符执行加法运算。例子1:两个数字相加leta=5;letb=10;letc=a+b;//c的值为15console.log(c);//输出......
  • 作业Day1:思维导图、堆区申请空间并释放
    作业:思维导图:作业:在堆区空间连续申请5个int类型大小空间,用来存放从终端输入的5个学生成绩,然后显示5个学生成绩,再将学生成绩升序排序,排序后,再次显示学生成绩。显示和排序分别用函数完成要求:用malloc和free完成代码:#include<stdio.h>#include<stdlib.h>voidDisplay(int......
  • 分布式锁有哪些实现方式?它们各自的优缺点是什么? JVM调优的基本步骤有哪些如何实现OAut
    本人详解作者:王文峰,参加过CSDN2020年度博客之星,《Java王大师王天师》公众号:JAVA开发王大师,专注于天道酬勤的Java开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯山峯转载说明:务必注明来源(注明:作者:王文峰哦)分布式锁有哪......
  • 深入源码:Spring Boot 内置 Tomcat 的实现机制分析
     在本文章中,我们将从源码层面深入分析SpringBoot如何实现内置Tomcat的功能。通过对相关代码的剖析,我们将揭示内置Tomcat的工作原理以及其在SpringBoot应用中的集成方式。这一过程不仅有助于理解SpringBoot的设计思路,还能为开发者在实际应用中提供更深入的见解。......