注意力机制(二)(自注意力机制)

简介: 看一个物体的时候,我们倾向于一些重点,把我们的焦点放到更重要的信息上

回顾

注意力机制

看一个物体的时候,我们倾向于一些重点,把我们的焦点放到更重要的信息上

所以,现在要求我们的深度学习模型也要能够为其学习的信息提供不同的注意力分配,从而让模型能够学习到更高价值的信息并且释放更多的算力资源

机制流程

1、QK 相乘:求爱好偏向和具体内容块的相似度

2、Scale变化:未来做 softmax 的时候避免出现极端情况,公式如下图

3、softmax求注意力概率分配:利用softmax函数让相似度转化为注意力的分配值(在0-1之间,总和为1)

4、MatMul生成新的查询对象:将原查询对象V乘上注意力分配值得到新的查询对象V’,此时新查询对象就带上了注意力的信息

问题思考

注意力机制能够正常执行关键的点在于给模型提供爱好偏向。如果爱好偏向是人为外部提供的,那么对于每一个模型、每一种应用情况,我们都必须要提供不同的爱好偏向。所以,注意力机制这个模型的泛化性是很差的,这也导致这个模型并不完全智能。

所以Q必须能够让模型通过训练自我学习,调整。

于是,我们必须要思考Q学习初始值的来源,这个Q的来源也将决定不同的注意力机制模型

总之,思考流程为:

注意力机制对外界信息依赖度过高——》要让模型自我学习爱好偏向Q——》Q初始值来源确定

我们的设想:

给注意力机制模型一个信息(待查询对象),模型能够自己学习待查询对象哪里重要,然后分配注意力并给出带有注意力信息的全新查询对象

自-注意力机制 (Self-Attention)

概述

自注意力机制最关键的点在于:K、Q、V来源于同一个X,这三者是同源的

现在外界只提供一个待查询对象X,我们需要从这个对象中提炼出板块分配K, 爱好信息Q,以及实际查询对象V

提炼的方式:

1、分配三个参数 给Q、K、V

2、通过监督学习提供的大量数据,来学习 的值

3、实现通过内部数据学习得到三个信息

详细流程

一、Q、K、V的获取

假如,通过随机梯度等模型参数训练方法以及监督学习模型提供的参数,我们已经训练好了一个模型,有了模型的参数


此时提供Thinking、Machine两个词,让模型学习单词内部的信息。首先,通过word2dev我们先将两个词变为向量的形式X1,X2。然后再分别乘上三个参数便可以得到对应的q、k、v

二、计算各单词注意力

关键点:


1、 每一个单词都有:自己的被查询对象(v),关键判断(k),在本模型中对该单词的爱好偏向特征

2、爱好偏向特征指的是:对单词特征抽象化提取后的喜欢程度。也就是说Thinking的爱好偏向特征,在其他单词中也可能存在(高维度特征,不是具象化表明的特征)。所以q1*k2也要考虑,因为Machine单词也可能有和Thinking一样被爱好的特征

3、每一个单词最后得到的注意力得分值的含义是:该单词(内部特征)在全体数据中(句子)所应该分配的注意力值

4、一个单词将融入其他单词的信息,增加了语言处理中对上下文关联信息提取的能力

三、缩放、Softmax处理

关键点:

1、这里的处理和注意力机制是完全相同的

2、 指的是第k个单词转为词向量后的词向量维度

四、计算最终待查询量

关键点:

1、sum=softmax*value

2、本质就是:原本的信息*注意力分配值=最终融入注意力的待查询信息

举例

不做注意力,its 的词向量就是单纯的 its,没有任何附加信息。但是显然从英语语法的角度来看,its后面的那个单词远远比its本身重要,并且its本身就是为了后面的名词做准备的,所以其提供的作用本身就是上下文关联


不加入注意力机制的模型对这个上下文关联的信息无法提取,这会导致模型没有办法很好的对文本进行学习


而通过自注意力机制得到新的 its 的词向量,则会包含一定的 laws 和 application 的信息,成功联系了文本的上下文信息

一些图解

下图的内容在上文均有涉及,仅仅为加深大家的印象,所以在此不再赘述

相关文章
|
6月前
|
机器学习/深度学习 Ruby
YOLOv5改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
YOLOv5改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
345 0
|
6月前
|
机器学习/深度学习 Ruby
YOLOv8改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
YOLOv8改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
689 0
|
1月前
|
机器学习/深度学习 自然语言处理 并行计算
多头注意力机制介绍
【10月更文挑战第4天】
|
4月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进 - 注意力机制】DoubleAttention: 双重注意力机制,全局特征聚合和分配
YOLOv8专栏探讨了该目标检测模型的创新改进,如双重注意力块,它通过全局特征聚合和分配提升效率。该机制集成在ResNet-50中,在ImageNet上表现优于ResNet-152。文章提供了论文、代码链接及核心代码示例。更多实战案例与详细配置见相关CSDN博客链接。
|
4月前
|
机器学习/深度学习 图计算 计算机视觉
【YOLOv8改进 - 注意力机制】 CascadedGroupAttention:级联组注意力,增强视觉Transformer中多头自注意力机制的效率和有效性
YOLO目标检测专栏探讨了Transformer在视觉任务中的效能与计算成本问题,提出EfficientViT,一种兼顾速度和准确性的模型。EfficientViT通过创新的Cascaded Group Attention(CGA)模块减少冗余,提高多样性,节省计算资源。在保持高精度的同时,与MobileNetV3-Large相比,EfficientViT在速度上有显著提升。论文和代码已公开。CGA通过特征分割和级联头部增加注意力多样性和模型容量,降低了计算负担。核心代码展示了CGA模块的实现。
|
5月前
|
机器学习/深度学习 自然语言处理 机器人
注意力机制详解(二)
注意力机制(Attention Mechanism)对比分析:无Attention模型中,Encoder-Decoder框架处理文本序列时,输入信息被编码为单一的中间语义表示,导致每个目标单词生成时使用相同编码,忽视了输入序列中各单词的不同影响。引入Attention模型后,每个目标单词根据输入序列动态分配注意力权重,更好地捕捉输入相关性,尤其适用于长序列,避免信息丢失。Self-Attention则进一步在序列内部建立联系,用于理解不同部分间的关系,常见于Transformer和BERT等模型中。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
注意力机制详解(一)
注意力机制是受人类认知过程启发的一种深度学习技术,它允许模型动态地聚焦于输入的不同部分,根据上下文分配“注意力”。这种机制最早在序列到序列模型中提出,解决了长距离依赖问题,增强了模型理解和处理复杂数据的能力。基本的注意力计算涉及查询(Q)、键(K)和值(V),通过不同方式(如点积、拼接等)计算相关性并应用softmax归一化,得到注意力权重,最后加权组合值向量得到输出。自注意力是注意力机制的一种形式,其中Q、K和V通常是相同的。在自然语言处理(NLP)中,注意力机制广泛应用在Transformer和预训练模型如BERT中,显著提升了模型的表现。
|
5月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 注意力机制 | 添加混合局部通道注意力——MLCA【原理讲解】
YOLOv8专栏介绍了混合局部通道注意力(MLCA)模块,它结合通道、空间和局部信息,提升目标检测性能,同时保持低复杂度。文章提供MLCA原理、代码实现及如何将其集成到YOLOv8中,助力读者实战深度学习目标检测。[YOLOv8改进——更新各种有效涨点方法](https://blog.csdn.net/m0_67647321/category_12548649.html)
|
4月前
|
机器学习/深度学习 编解码 计算机视觉
【YOLOv10改进-注意力机制】Polarized Self-Attention: 极化自注意力,双重注意力机制
YOLOv10引入了极化自注意(PSA)块,结合通道和空间注意力,降低信息损失。PSA通过极化过滤保持高分辨率,并用增强处理非线性分布。在2D姿态估计和分割任务上提升1-2点精度,相比基线提升2-4点。代码示例展示了PSA模块如何集成到模型中。更多配置详情见相关链接。
|
5月前
|
机器学习/深度学习 自然语言处理 算法
YOLOv5改进 | 注意力机制 | 添加三重注意力机制 TripletAttention【完整代码】
本文介绍了三重注意力机制在YOLOv5目标检测中的应用,这是一种轻量级方法,通过三分支结构捕获跨维度交互来计算注意力权重,几乎不增加计算开销。文章详细阐述了三重注意力的原理,包括全局、组间和组内三个层次的注意力计算,并提供了将TripletAttention模块添加到YOLOv5网络的教程。作者提供了代码实现和yaml配置文件的修改指导,以及在训练脚本中设置配置文件路径的步骤。完整代码附在文章末尾,适合初学者实践。此外,文章还鼓励读者探索在不同位置添加三重注意力以进一步优化模型性能。