🗒️Self Attention 概述
2024-9-3
| 2024-9-3
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password
comment
😀
Self-attention 是一种强大的神经网络机制,最初在 Transformer 模型中提出,现已广泛应用于自然语言处理、计算机视觉等多个领域。它允许模型在处理序列数据时,根据输入序列的不同部分之间的相关性来调整对各部分的关注度。

基本概念:

Self-attention 使模型能够在处理序列中的每个元素时,考虑序列中的所有其他元素。它计算序列中每个元素与所有其他元素(包括自身)的关联程度。

主要组成部分:

  • Query (查询)
  • Key (键)
  • Value (值)
这三个组件通常通过对输入进行线性变换得到。

计算过程:

a. 对于序列中的每个元素,生成 Query、Key 和 Value。
b. 计算 Query 与所有 Key 的点积,得到注意力分数。
c. 对注意力分数进行缩放和 softmax 归一化。
d. 使用归一化后的分数对 Value 进行加权求和。

数学表达:

Attention(Q, K, V) =
其中 是 Key 的维度。

多头注意力 (Multi-Head Attention):

  • 并行执行多个 self-attention 操作,每个称为一个"头"。
  • 每个头可以关注输入的不同方面。
  • 最后将所有头的输出连接并进行线性变换。

优势:

  • 可以捕捉长距离依赖关系。
  • 并行计算,效率高。
  • 不受位置限制,可以灵活地关注相关信息。

应用:

  • 机器翻译
  • 文本摘要
  • 问答系统
  • 图像分类和分割
  • 语音识别等

变体:

  • 相对位置编码
  • 稀疏注意力
  • 局部注意力等

挑战:

  • 计算复杂度随序列长度增加而快速增长 ()
  • 对于非常长的序列,可能需要特殊处理
 
  • 深度学习
  • 提升模型准确率的一些方法梯度消失和梯度爆炸
    Loading...
    Catalog