transformer学习笔记1

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:一层层重复做关系建模和特征提炼

相关推荐
风舞雪凌月2 小时前
【趣谈】移动系统和桌面系统编程语言思考
java·c语言·c++·python·学习·objective-c·swift
88号技师2 小时前
2026年3月新锐一区SCI-随机社会学习优化算法Stochastic social learning-附Matlab免费代码
学习·算法·数学建模·matlab·优化算法
阿i索2 小时前
【蓝桥杯备赛Day5】排序
笔记·蓝桥杯·排序算法
今儿敲了吗2 小时前
Linux学习笔记第三章——基础命令(一)
linux·笔记·学习
冰语竹2 小时前
Android学习之Activity生命周期
android·学习
浅念-2 小时前
LeetCode 双指针题型 C++ 解题整理
开发语言·数据结构·c++·笔记·算法·leetcode·职场和发展
数据与后端架构提升之路2 小时前
系统架构设计师常见高频考点总结之信息化基础与系统规划、项目管理
笔记
诸神缄默不语2 小时前
论文阅读笔记:Claude如何思考
论文阅读·笔记·大模型·llm·大语言模型·claude·大规模预训练语言模型
Engineer邓祥浩2 小时前
JVM学习问题记录(2) jps命令无法识别
jvm·学习