Transformer 可以理解成一种看整体关系的神经网络

如果 CNN 更像拿着放大镜,先看附近一点点;
那 Transformer 更像先把所有内容摊开,然后问:

“谁和谁有关?”
“当前这个位置,应该重点参考哪些别的位置?”

这就是它最核心的思想。

1. Transformer 是为了解决什么问题出来的

传统网络常见两种看信息的方式:

  • CNN:擅长看局部,像看邻域、纹理、边缘
  • RNN/LSTM:擅长看序列,但一步一步传,长距离信息容易衰减

Transformer 的厉害之处是:

它不按顺序慢慢看,而是一下子看全局。

比如一句话里,第 1 个词和第 20 个词有关系,Transformer 可以直接把它们联系起来。

所以它特别适合处理:

语言
图像
序列
任何“元素之间关系很重要”的任务

2. 先记住一个最核心概念:attention

attention 就是“注意力机制”。

它的意思很简单:

  • 处理某个元素时,不是平均看所有元素,而是有重点地看最相关的那些。

比如这句话:

小明把书放到桌子上,因为它很稳。

这里“它”更可能指“桌子”,不是“书”。
Transformer 就会在处理“它”时,更关注“桌子”。

这就是 attention 的直觉:

  • 当前内容,要去参考和自己最相关的内容。

3. Self-Attention 是什么

Transformer 里最重要的是 Self-Attention(自注意力)。

Self 的意思是:

在同一组输入内部,自己和自己算关系。

比如一句话里有 5 个词:

每个词都会看其他 4 个词
判断谁和自己关系更大
再把这些信息加权汇总
所以每个词最后得到的,不只是“它自己”,
而是“它结合全局上下文后的新表示”。

你可以把它理解成:

每个位置都开一次会,听听其他位置对自己的补充意见。

4. 为什么 Transformer 比较强

因为它最擅长做两件事:

捕捉长距离依赖
建模全局关系

  • 比如图像里左上角和右下角的区域可能相关;
  • 高光谱里某些波段之间隔得很远,但变化模式有关;

Transformer 都比较适合处理这种“远距离关系”。

这也是为什么后来很多图像任务、遥感任务都引入 Transformer。

5. Transformer 的输入是什么

Transformer 本身不直接懂“词”或者“像素”,
它只处理一串向量,也就是一串 token。

所以第一步通常要做的是:

把输入变成 token

在不同任务里,token 的含义不同:

  • 在 NLP 里,token 可以是词、字、子词
  • 在图像里,token 可以是一小块 patch
  • 在高光谱里,token可以是某种空间块特征、光谱特征,或者分类 token

所以:

Transformer 吃的不是原始数据,而是一串向量化表示。

6. 什么叫 embedding

token 进入 Transformer 前,通常会先变成一个向量,叫 embedding。

比如

一个词“cat”,最后会变成一个数字向量;
图像里一个 patch,也会变成一个向量。

这个向量不是随便编码,而是:

把这个 token 的语义信息压缩到一串数字里

所以 embedding 可以理解成:

机器能读懂的特征表示

7. 位置问题:Transformer 怎么知道顺序

Transformer 本身是“同时看全部”的,它不像 RNN 那样天然按顺序走,所以如果不额外处理,它根本不知道谁在前谁在后。

这就需要 位置编码(Positional Encoding)

位置编码就是告诉模型:

第几个词
第几个
patch 在什么位置

所以 Transformer 看到的其实不是单纯 token,
而是:

token 内容 + 位置信息

这样它才知道结构和顺序。

8. Self-Attention 里面最常见的三个东西:Q、K、V

这是新手最容易被吓到的部分,其实可以很直白地理解。

每个 token 会生成三个向量:

Q(Query):我想找什么
K(Key):我能提供什么
V(Value):我真正携带的信息是什么

处理某个 token 时,会做这件事:

拿它的 Q 去和别人的 K 比较
看谁更匹配
匹配高的,就给更大权重
再把这些人的 V 加权求和

所以本质上就是:

“我当前需要什么” 去匹配 “别人能提供什么”,再把有用信息拿过来。

9. 用一句特别通俗的话理解 Q、K、V

你可以把它想成开会:

Q:我现在的问题
K:每个人擅长的方向
V:每个人真正能给出的内容

然后谁最对题,我就更认真听谁。
这就是 attention 的本质。

10. Multi-Head Attention 又是什么

一个注意力头,可能只学到一种关系,所以 Transformer 不只开一个“观察视角”,而是同时开多个头。
这就是 Multi-Head Attention(多头注意力)。

不同的头可以分别关注:

局部关系
全局关系
边缘信息
语义相似性

某些特殊波段关系
你可以把它理解成:

不是一个老师看题,而是几个老师从不同角度一起看。

这样模型学到的关系会更丰富。

11. Transformer 一层大概长什么样

如果只看最常见的编码器层,可以粗略理解成两步:

Multi-Head Self-Attention 让每个 token 和其他 token 建立关系
前馈网络(Feed Forward Network, FFN) 对每个 token 再做一轮非线性变换,增强表达能力

中间通常还会配:

残差连接
LayerNorm

这些是为了训练更稳定,不容易梯度出问题。

你现在先不用死记,先知道:

一层 Transformer = 先做“关系建模”,再做“特征加工”。

12. Encoder 和 Decoder 是什么

经典 Transformer 有两部分:

Encoder
Decoder

但很多任务只用 Encoder 就够了。
比如分类任务里常见的是:

输入 token
经过多层 encoder
拿最终表示去分类

所以你现在学高光谱分类,重点先懂 Transformer Encoder 就可以了。
你前面看到的 DBSSFormer 里提到的,也主要是编码器思想。

13. Transformer 用在图像里是怎么回事

原始 Transformer 是做语言的,后来大家把它搬到图像里。
做法大概是:

把图像切成很多小 patch
每个 patch 变成一个 token
加上位置编码
丢进 Transformer 让所有 patch相互建立关系
这样模型就能看到更全局的图像结构。

所以它和 CNN 的区别可以简单记成:

  • CNN:靠卷积核滑动,天生偏局部
  • Transformer:靠注意力建关系,天生偏全局

14. Transformer 的优点

对小白来说,先记这 3 点最够用:

  • 能建模长距离依赖
  • 能灵活捕捉全局关系
  • 注意力是动态的,不是固定模板

“动态”很重要。
CNN 的卷积核是固定局部扫描;
Transformer 会根据当前输入内容,动态决定该关注谁。

15. Transformer 的缺点

它也不是万能的,常见问题有:

计算量大 数据需求往往更高
对局部细节不如 CNN 天然敏感
如果 token 太多,注意力计算会很贵

所以很多方法会把 CNN + Transformer 结合起来

总结

如果用最简单的话定义 Transformer:

Transformer 是一种基于注意力机制的网络,它通过让每个 token 和其他 token 动态建立关系,来学习全局上下文信息。

token:输入被拆成的小单位
embedding:token 变成机器能处理的向量
position:告诉模型顺序或位置
self-attention:每个 token 去看和自己最相关的其他 token
multi-head:从多个角度同时看关系
transformer encoder:一层层重复做关系建模和特征提炼

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐