首页 > 其他分享 >编码器的稀疏注意力块(ProbSparse Self-Attention Block)

编码器的稀疏注意力块(ProbSparse Self-Attention Block)

时间:2024-06-23 19:01:00浏览次数:25  
标签:编码器 线性变换 Self Attention 稀疏 Add 维度 512 注意力

编码器的稀疏注意力块(ProbSparse Self-Attention Block)详细解释

1. 概述

稀疏注意力块是Informer模型的核心组件之一,旨在高效处理长时间序列数据。它通过稀疏自注意力机制(ProbSparse Self-Attention)显著降低计算复杂度,同时保持较高的性能。

2. 主要组件

稀疏注意力块由以下几个主要部分组成:

  1. 多头稀疏注意力(Multi-head ProbSparse Attention)
  2. Add, LayerNorm, Dropout
  3. 位置前馈网络(Position-wise Feed-Forward Network, FFN)
  4. GELU 激活函数
  5. 重复机制
3. 多头稀疏注意力(Multi-head ProbSparse Attention)
  • 作用:稀疏注意力机制通过挑选重要的注意力头来减少计算量。

  • 具体步骤

    1. 线性变换:输入特征通过线性变换生成查询(Query)、键(Key)、和值(Value)矩阵。
    2. 计算注意力分数:通过点积计算查询和键的相似度,并通过Softmax归一化得到注意力权重。
    3. 选择重要的头:通过概率稀疏性方法,仅计算和保留重要的注意力头。
    4. 加权求和:用注意力权重加权和值(Value),得到注意力输出。
    5. 多头注意力:将多个注意力头的输出拼接在一起,并通过线性变换。
  • 计算复杂度:相比传统自注意力的 O ( N 2 ) O(N^2) O(N2) 复杂度,稀疏注意力机制通过选择重要注意力头将其降低到 O ( N log ⁡ N ) O(N \log N) O(NlogN),其中 N N N 是序列长度。

4. Add, LayerNorm, Dropout
  • Add:将注意力输出与输入特征相加,形成残差连接(Residual Connection),有助于防止梯度消失和过拟合。
  • LayerNorm:进行层归一化,标准化每个输入样本,改善训练稳定性和收敛速度。
  • Dropout:随机丢弃一些神经元,防止过拟合,丢弃率为0.1。
5. 位置前馈网络(Position-wise Feed-Forward Network, FFN)
  • 结构

    1. 线性变换:输入经过线性变换,维度从 d model d_{\text{model}} dmodel​ 转换到 d inner d_{\text{inner}} dinner​,即 2048 2048 2048。
    2. GELU 激活函数:应用GELU(Gaussian Error Linear Unit)激活函数,引入非线性。
    3. 线性变换:再通过线性变换将维度从 d inner d_{\text{inner}} dinner​ 转换回 d model d_{\text{model}} dmodel​,即 512 512 512。
  • Add, LayerNorm, Dropout:再一次应用残差连接、层归一化和丢弃操作,进一步增强模型的训练和泛化能力。

6. 重复机制

整个稀疏注意力块重复4次,每次重复都进一步提炼和强化输入特征的表示能力。

具体实例

假设我们有一个时间序列数据,经过前面的Conv1d和嵌入层处理后,得到一个长度为10的序列,每个时间点的特征维度为512。

示例步骤
  1. 多头稀疏注意力

    • 将输入特征通过线性变换生成查询、键和值矩阵(每个维度为 10 , 16 , 32 10, 16, 32 10,16,32)。
    • 计算注意力分数,选择最重要的头(假设选择了8个头)。
    • 将这些头的注意力输出拼接并通过线性变换得到最终的注意力输出。
  2. Add, LayerNorm, Dropout

    • 将注意力输出与输入特征相加,进行层归一化和丢弃。
  3. 位置前馈网络

    • 通过两次线性变换和GELU激活,处理后的特征从512维度变到2048维度,再返回到512维度。
    • 应用Add, LayerNorm和Dropout操作。
  4. 重复4次

    • 整个过程重复4次,不断精炼和强化特征表示。

小结

通过稀疏注意力块,Informer模型能够在保持高效的计算性能同时,提取并强化时间序列中的重要模式和依赖关系。这种设计使其特别适合处理长时间序列数据。

标签:编码器,线性变换,Self,Attention,稀疏,Add,维度,512,注意力
From: https://blog.csdn.net/m0_51200050/article/details/139794531

相关文章