常见注意力机制

注意力机制

(具有自适应性)

18年提出的一种新的 卷积注意力模块 ;对前馈卷积神经网络 是一个 简单而有效的 注意力模块 ;

因为它的 轻量级和通用性 ,可以 无缝集成到任何CNN网络 当中,

对我们来讲,只要涉及到卷积操作,就可以插入注意力机制试一试效果

1.通道注意力 Channel Attention,告诉网络自适应的更加关注通道的高语义特征,例如点特征,线特征,面特征,明暗特征,

2.空间注意力机制 Spatial Attention,告诉网络更加关注物体在空间中所处于的一个位置(在每一层通道中)

3.时间注意力机制 Temporal Attention

4.分支注意力机制 Branch Attention

最后还有两种混合注意力机制:

通道&空间注意力机制空间&时间注意力机制

在这里插入图片描述

在这里插入图片描述

### 常见注意力机制模型的参数量比较 #### 单头注意力机制 单头注意力机制通常由查询(Q)、键(K)和值(V)三个线性变换矩阵组成。假设输入维度为d_model,那么这三个矩阵各自的尺寸均为d_model×d_k,其中d_k是每个头部的关键维度。因此,对于单头注意力机制而言,其总的参数数量大约为: \[ \text{Params}_{\text{single-head}} = 3 \times d_{model} \times d_{k} + d_{v} \times d_{model} \] 这里额外加上了一个\(d_v\)到\(d_{model}\)的映射矩阵。 #### 多头注意力机制 多头注意力机制是在单头的基础上进行了扩展,在相同的输入上应用多个平行的注意函数,并将它们的结果连接起来作为最终输出的一部分。如果设有多h个这样的“头”,则每个多头内部仍然遵循上述公式计算各自部分的参数数;而整个多头模块还需要考虑各头之间拼接后的投影操作所带来的额外参数开销。所以总体来说, \[ \text{Params}_{\text{multi-head}} = h(3d_{model}d_{k})+hd_{v}(d_{model}/h)= hd_{model}(3d_{k}+\frac{d_{v}}{h}) \] 这表明随着头的数量增加,虽然可以增强表达能力,但也相应增加了更多的可训练参数[^4]。 #### 双向编码器表示Transformer (BERT) 以BERT为例,这是一种基于自注意力机制构建的大规模预训练语言模型。具体版本如BERT-base拥有约1亿1千万个参数,其中包括了词嵌入层、位置编码以及多达12层堆叠而成的transformer blocks内的各种组件所贡献出来的庞大参数集合。而对于更大规模的变体比如BERT-large,则会进一步增长至超过3亿个参数。 ```python # Python代码展示简单的参数估算逻辑 def estimate_attention_params(d_model, d_k, d_v=None, num_heads=1): if not d_v: d_v = d_k single_head_params = 3 * d_model * d_k + d_v * d_model multi_head_params = num_heads * (3 * d_model * d_k + d_v * (d_model / num_heads)) return { "Single Head": single_head_params, "Multi Heads": multi_head_params } estimate_attention_params(768, 64, None, 12) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值