1. 总问题:为什么深层网络一定要控制数值尺度?#
Transformer 的每一层都在做类似这样的操作:
xl+1=xl+Fl(xl)其中 xl 是第 l 层的 hidden state,Fl 可能是 Attention,也可能是 MLP。
问题在于,深度网络不是只做一层矩阵乘法,而是反复做:
x→Wx→Activation→W′x→⋯如果每一层都让方差稍微变大一点,几十层之后就会指数式放大。
假设每层让激活方差放大 α 倍:
Var(xl+1)=αVar(xl)那么经过 L 层:
Var(xL)=αLVar(x0)如果:
α=1.1,L=100那么:
1.1100≈13780这意味着方差已经被放大了一万多倍。
所以深层模型的核心危险不是“某一层算错”,而是:
每一层都只偏一点点,堆深之后整体数值分布彻底失控。
这就是归一化存在的根本原因。
2. 数值失控的三种后果#
2.1 激活值爆炸#
如果 hidden state 变得很大:
∣xl∣≫1那么后续矩阵乘法、指数函数、Softmax 都会面临溢出。
在 FP16 中,最大有限值约为:
65504如果中间值超过这个范围,就可能出现:
Inf再参与后续运算,就可能变成:
NaNFP16 数值范围有限,BF16 范围更大但尾数短,容易出现截断误差和“大数吃小数”的问题。
2.2 Softmax 饱和#
Attention 里有:
P=Softmax(S)如果 logits S 的差距太大,比如:
S=[20,0,−20]那么:
Softmax(S)≈[1,0,0]这时 Softmax 从“软选择”退化成“硬选择”。
Softmax 的导数大致和:
p(1−p)相关。
当:
p≈1或者:
p≈0都有:
p(1−p)≈0于是梯度消失。未缩放的高维点积会让 Softmax 接近 Hardmax,从而导致梯度消失。
2.3 残差累加导致主干漂移#
Transformer 有残差:
xl+1=xl+Fl(xl)如果 Fl(xl) 的尺度没有被控制,那么每一层都往主干里加东西:
xL=x0+l=1∑LFl(xl)当层数很深时,主干 xL 的尺度可能越来越大。
这就是为什么现代大模型不仅要有 Norm,还要配合:
Pre-Norm残差分支初始化缩放RMSNorm无 bias linear这些设计是一套互相配合的数值稳定系统。
3. 方差:深度学习里最重要的“尺度语言”#
神经网络里说“数值稳定”,本质是在说:
E[x]和:
Var(x)是否可控。
均值控制中心位置,方差控制波动范围。
给一组 hidden state:
x=[x1,x2,…,xd]均值:
μ=d1i=1∑dxi方差:
σ2=d1i=1∑d(xi−μ)2标准差:
σ=d1i=1∑d(xi−μ)2归一化的核心就是:
x^i=σxi−μ这样得到:
E[x^]=0Var(x^)=1这个操作本质上是在说:
我不关心你的绝对数值是多少,我只关心你相对于整体分布的位置。
是 Transformer、AIGC 检测、对抗扰动、时序一致性分析之间的共同数学语言。
4. LayerNorm:控制一个 Token 内部的特征分布#
在语言模型里,一个 token 的 hidden state 是一个 d 维向量:
xt∈RdLayerNorm 对同一个 token 的 hidden size 维度做归一化:
μt=d1i=1∑dxt,iσt2=d1i=1∑d(xt,i−μt)2LayerNorm(xt,i)=γiσt2+ϵxt,i−μt+βi它的含义是:
每个 token 自己内部完成一次尺度校准。
这和 BatchNorm 不同。BatchNorm 是跨 batch 统计,而 LayerNorm 是 token 内部统计。
对语言模型来说,BatchNorm 不合适,因为不同样本可能来自完全不同的文本上下文。一个 batch 里可能同时有数学题、诗歌、代码、聊天,如果强行跨样本计算均值和方差,会让样本互相污染。
所以 Transformer 使用 LayerNorm / RMSNorm,本质上是为了保证:
每个 token 的归一化结果不依赖其他请求也就是训练和推理更一致。
5. RMSNorm:现代 LLM 的工程化归一化#
LayerNorm 做两件事:
xi−μ和:
σ1也就是:
- 平移:减去均值;
- 缩放:除以标准差。
RMSNorm 认为,最关键的是缩放,不一定需要减均值。
它定义:
RMS(x)=d1i=1∑dxi2然后:
RMSNorm(xi)=γid1∑j=1dxj2+ϵxi它不再计算:
μ也不做:
xi−μ只控制向量的整体能量尺度。
重点是:RMSNorm 去掉均值计算后,减少了 reduction 状态、寄存器压力和 element-wise 减法,更适合高性能 CUDA/Triton kernel;而 LayerNorm 即使用 E[X2]−(E[X])2 做融合,也仍然需要维护均值相关统计量,且在低精度下可能有灾难性抵消问题。
5.1 LayerNorm 和 RMSNorm 的本质差异#
LayerNorm 控制的是:
σx−μRMSNorm 控制的是:
RMS(x)xLayerNorm 去掉了均值方向:
x→x−μRMSNorm 保留了均值方向,只控制整体长度。
从几何角度看,RMSNorm 更像是在控制向量模长:
∣x∣2因为:
RMS(x)=d∣x∣2所以:
RMS(x)x=∣x∣2dx这说明 RMSNorm 本质上是在把向量投影到一个固定半径的超球面附近。
这句话很重要:
RMSNorm 不强制特征中心为 0,而是强制特征能量稳定。
对于大模型来说,稳定能量比强行中心化可能更关键。
6. Pre-Norm:为什么现代大模型喜欢把 Norm 放在前面?#
Transformer 有两种常见结构。
Post-Norm:
xl+1=Norm(xl+Fl(xl))Pre-Norm:
xl+1=xl+Fl(Norm(xl))Post-Norm 的问题是,反向传播时梯度每一层都要穿过 Norm。
如果网络很深,梯度可能被 Norm 的导数反复缩放。
Pre-Norm 的优势是主干路径干净:
xl+1=xl+something反向传播时:
∂xl∂xl+1=I+∂xl∂Fl(Norm(xl))这里的 I 是关键。
它保证梯度至少有一条接近恒等映射的路径可以传回去。
所以 Pre-Norm 的本质是:
牺牲一点前向表达的规整性,换取反向传播的稳定性。
这和 ResNet-v2 的思想非常像:让残差主路尽量保持 identity mapping,不要在主干路径上塞太多操作。
6.1 Pre-Norm 的隐患:表征坍塌#
Pre-Norm 也有问题。
它不断累加:
xL=x0+l=1∑LFl(Norm(xl))因为每个残差分支输入都被 Norm 控制住,所以:
Fl(Norm(xl))的尺度相对稳定。
但主干 xl 会不断累加,可能越来越大。
于是深层新增的信息相对于主干来说越来越小。
这可以理解为:
∣xl∣∣Fl(Norm(xl))∣→0这就是为什么有人说 Pre-Norm 深层可能出现 representation collapse。
但是现代 LLM 仍然普遍使用 Pre-Norm,因为它带来的训练稳定性太重要。
结论是:
Post-Norm 更规整,但深层训练难;Pre-Norm 更稳定,但深层表达可能变弱。现代 LLM 选择了工程上更可靠的 Pre-Norm。
7. Attention 缩放:为什么必须除以 dk?
Attention 的核心公式:
Attention(Q,K,V)=Softmax(dkQKT)V关键问题是:为什么要除以 dk?
对一个 query 和 key:
q⋅k=i=1∑dkqiki假设:
E[qi]=0,Var(qi)=1E[ki]=0,Var(ki)=1且各维独立。
那么:
E[qiki]=E[qi]E[ki]=0并且:
Var(qiki)=E[qi2ki2]−E[qiki]2由于独立:
E[qi2ki2]=E[qi2]E[ki2]又因为方差为 1、均值为 0:
E[qi2]=1,E[ki2]=1所以:
Var(qiki)=1现在 dk 个项相加:
q⋅k=i=1∑dkqiki独立变量和的方差等于方差之和:
Var(q⋅k)=i=1∑dkVar(qiki)=dk所以点积的标准差是:
dk原理说明#
如果不做缩放,dk 越大,logits 数值波动越剧烈,Softmax 函数也越容易进入饱和状态。
对点积结果除以 dk 做缩放处理后,方差推导如下:
Var(dkq⋅k)=dkVar(q⋅k)=1这是该设计精妙的数学核心:高维向量的点积会天然放大方差,通过 dk 缩放,可将方差重新约束为单位方差。
点积累加后的方差会变成 dk,标准差是 dk,除以它可以把 logits 的方差重新缩放回 1。
8. Softmax:概率归一化,也是数值稳定系统的一部分#
Softmax:
pi=∑jezjezi它做了三件事:
- 把任意实数变成正数;
- 归一化成概率;
- 放大差异。
但 Softmax 有一个巨大风险:
ezi如果 zi 很大,指数会爆炸。
所以工程上永远不会直接算原始 Softmax,而是 Safe Softmax:
pi=∑jezj−Mezi−M其中:
M=jmaxzj为什么数学上等价?
因为:
∑jezj−Mezi−M=e−M∑jezjezie−M=∑jezjezi所以减最大值不会改变结果。
但是工程上,它把最大指数项变成:
e0=1其他项都变成:
ezi−M≤1因此避免了上溢。
这和 Normalization 的思想高度一致:
数学上保持相对关系不变,工程上改变绝对尺度以保证稳定。
Normalization、Softmax、Gumbel-Max 等底层优化的共同点,是用数学等价变换、数值稳定重写或经过验证的近似,换取更好的访存局部性、并行度和 kernel 融合空间。
9. Causal Mask:用数值操作表达结构约束#
自回归语言模型要求第 i 个 token 不能看未来 token。
所以 attention score:
Sij如果:
j>i就设为:
−∞也就是:
Sij={dkqikjT,j≤i −∞,j>i经过 Softmax:
e−∞=0所以未来位置的注意力权重为 0。
这说明一件事:
模型里的“结构规则”,最后经常会被转化成 logits 空间里的数值规则。
因果约束不是通过自然语言告诉模型“别看未来”,而是在矩阵上直接把未来位置打成 −∞。
这对你的课题很有启发。
AIGC 视频检测也可以把很多“真实世界约束”转化为数值约束:
真实视频中:
identityt≈identityt−1lightingt≈lightingt−1motiont≈A(motiont−1)如果违反,就让异常分数升高。
也就是说,你不是主观说“它看起来假”,而是把“假”变成:
constraint violation
10. FlashAttention:大模型工程里最值得学习的思想#
朴素 Attention 会计算:
S=QKTP=Softmax(S)O=PV问题是,如果序列长度是 N,那么 S 和 P 都是:
N×N长文本下,这两个矩阵会产生巨大的显存读写。
FlashAttention 的核心不是近似 Attention,而是:
精确 Attention,但不把中间矩阵 S 和 P 写回 HBM。
它利用 Online Softmax 分块计算。
对一个 softmax 向量,维护:
m=max(z)l=j∑ezj−m当新 block 来时:
mnew=max(mold,mblock)旧分母要校正:
lnew=loldemold−mnew+j∈block∑ezj−mnew为什么要乘:
emold−mnew因为以前的累加是基于旧最大值 mold:
ezj−mold现在最大值变了,要改成基于 mnew:
ezj−mnew两者关系是:
ezj−mnew=ezj−moldemold−mnew这就是 Online Softmax 的数学核心。
它不是拍脑袋优化,而是严格等价变换。
FlashAttention 把这个思想扩展到:
O=Softmax(QKT)V在每个 tile 内同时完成:
QKTOnline SoftmaxPV最终避免写出巨大的 S 和 P。
这对科研有一个很大的方法论启发:
好的研究不是只提出一个新模块,而是找到数学结构里的冗余,把它变成可计算、可优化、可扩展的形式。
现在进入最重要的部分:这套笔记和我的科研到底有什么关系?
课题不是单纯做 LLM,但这里的数学思想可以直接迁移。
Transformer 的核心问题:
深层特征如何稳定传播?AIGC 视频检测核心问题:
视频状态如何稳定演化?这两个问题在数学形式上非常像。
Transformer 中每层 hidden state:
xl希望它不要爆炸、不要塌缩、不要漂移。
视频中每一帧的状态:
st也希望它符合真实世界的演化规律。
真实视频可以抽象为:
st=A(st−1,mt)+ϵt其中:
- st:第 t 帧状态;
- mt:运动、姿态、相机变化等条件;
- A:真实世界的状态转移规律;
- ϵt:小噪声。
如果是真实视频:
∣st−A(st−1,mt)∣应该比较小,并且稳定。
如果是生成视频:
∣st−A(st−1,mt)∣可能突然变大,或者呈现不自然的高频波动。
所以你可以把 AIGC 视频检测写成:
rt=∣st−s^t∣其中:
s^t=Aθ(st−1,mt)最后分类:
pfake=C(Pool(rt,stt=1T))这比“检测伪影”高级得多。
你是在检测:
生成视频是否破坏了真实视频的状态转移分布。
11.2 Normalization 对你的启发:检测相对异常,不要迷信绝对值#
Transformer 归一化告诉我们:
绝对数值不可靠,分布内的相对关系更重要。
这对 AIGC 视频检测非常关键。
不同视频的亮度、分辨率、压缩率、风格都不一样。如果你直接比较像素绝对值:
xt很容易被无关因素干扰。
更合理的是比较归一化后的特征变化:
f~t=Norm(f(xt))然后看:
Δt=∥f~t−f~t−1∥或者:
rt=∣s~t−s~^t∣这可以减少亮度、风格、压缩等无关尺度的影响。
你可以在论文/PPT 里这样说:
Inspired by normalization in deep networks, we focus on relative temporal deviations rather than raw feature magnitudes.
中文就是:
受深度网络归一化思想启发,我们不直接依赖原始特征幅值,而是关注归一化状态空间中的相对时序偏差。
这句话有研究味。
11.3 Softmax 对你的启发:检测器其实是在做“异常证据分配”#
Softmax 把 logits 变成概率:
pi=∑jezjezi它的本质是:
在多个候选之间分配注意力或概率质量。
你的 AIGC 视频检测也可以类似处理。
假设你有多种异常证据:
etid身份异常;
etmotion运动异常;
etfreq频域异常;
ettexture纹理异常;
etsemantic语义异常。
可以构造证据向量:
et=[etid,etmotion,etfreq,ettexture,etsemantic]然后用 Softmax 做证据权重:
αt=Softmax(Wet)最终异常分数:
Rt=k∑αt,ket,k这样你的检测器不是简单平均所有异常,而是学会:
当前视频更应该相信哪一种异常证据。
例如:
- 换脸视频:身份异常权重大;
- 文生视频:运动和物理异常权重大;
- 视频编辑/补帧:频域和边缘异常权重大;
- VACE 这类局部编辑:局部纹理和时序闪烁权重大。
这就是把 Softmax 从“分类概率”提升到“证据分配机制”。
12. 对你的 detector-guided residual editor 的启发#
你之前做的图像残差编辑可以写成:
x′=clip(x+ϵtanh(r),0,1)其中:
r=Gθ(x)损失函数:
L=λrec∥x′−x∥1+λdetD(x′)+λtvLTV(r)+λres∥r∥22这个方向很对,但它有一个危险:
如果残差没有稳定约束,模型可能学到全局脏纹理、色偏、摩尔纹,而不是人眼不可见的有效扰动。
这和大模型里的激活爆炸很像。
所以可以引入 residual normalization:
rˉ=RMS(r)+ϵr然后:
x′=clip(x+ηrˉ,0,1)这样残差方向由网络学习,但残差强度被显式控制。
也可以做通道级归一化:
rˉc=HW1∑h,wrc,h,w2+ϵrc这样避免某个颜色通道过度偏移。
12.1 视频版本必须加 temporal residual norm#
如果扩展到视频:
xt′=xt+δt不能只控制单帧:
∣δt∣还要控制时间变化:
∣δt−δt−1∣否则就会出现帧间闪烁。
可以设计:
Ltemp=t=2∑T∣δt−δt−1∣1更进一步,考虑光流:
Lflow=t=2∑T∣δt−Warp(δt−1,Flowt−1→t)∣1这比普通 temporal loss 更强,因为它考虑了物体运动。
最终视频对抗编辑目标可以写成:
δminλdetD(V+δ)+λrect∑∥xt′−xt∥1+λtempt∑∥δt−Warp(δt−1)∥1+λtvLTV(δ)这个公式很适合放进你的课题 PPT。
13. AIGC 视频检测可以借鉴“Pre-Norm 思想”#
Pre-Norm 的核心是:
xl+1=xl+F(Norm(xl))它不是直接处理原始 xl,而是先把 xl 拉回稳定尺度。
你的检测模型也可以这样设计。
假设每帧特征:
ft=Φ(xt)先归一化:
f~t=Norm(ft)再计算时序残差:
rt=f~t−Aθ(f~t−1)这样比直接用:
ft−Aθ(ft−1)更稳定。
原因是不同视频的原始特征尺度可能不同:
- 光照不同;
- 分辨率不同;
- 压缩率不同;
- 生成器风格不同;
- 人脸大小不同;
- 背景复杂度不同。
先归一化可以让检测器更关注“异常模式”而不是“尺度差异”。
这可以成为你方法设计里的一个原则:
Normalize before temporal reasoning.
中文可以写:
先进行状态尺度归一化,再进行时序状态转移建模。
14. AIGC 视频中的“伪影”可以重新定义为分布失稳#
传统说法:
AIGC 视频有闪烁、纹理不稳定、身份漂移、边缘异常。
这比较散。
更高级的说法是:
AIGC 视频的伪影是生成模型在多层状态空间中的分布失稳。
可以分成四层。
14.1 像素层失稳#
rtpix=∣xt−Warp(xt−1)∣检测的是局部像素变化是否符合运动。
对应问题:
14.2 特征层失稳#
rtfeat=∣Φ(xt)−Φ(Warp(xt−1))∣其中 Φ 可以是 CLIP、DINO、CNN backbone、人脸识别网络等。
对应问题:
14.3 身份层失稳#
对人物视频:
rtid=1−cos(Eid(xt),Eid(xt−1))对应问题:
- 人脸身份漂移;
- 眼睛、嘴巴、人脸轮廓不稳定;
- 发型局部变化导致身份特征漂移。
这和你做 VACE 改发型、head video、FlashAvatar 对比实验都有关系。
14.4 状态转移层失稳#
设:
st=Fθ(x1,…,xt)预测下一状态:
s^t+1=Aθ(st,mt)残差:
rt+1state=∣st+1−s^t+1∣这对应更高级的异常:
- 动作不符合物理;
- 头部转动不连续;
- 表情变化不自然;
- 手部运动不符合动力学;
- 镜头运动和人物运动不一致。
这就是你 SITF / 状态空间检测最应该强调的地方。
15. 一个更强的课题表达:从“伪影检测”升级到“状态分布稳定性检测”#
你可以把课题重新表述为:
现有 AIGC 视频检测方法往往关注局部伪影或单帧统计差异,但高质量生成模型正在快速消除这些表层缺陷。因此,我们更关注真实视频在时间、语义、身份、频率和物理状态空间中的稳定演化规律,并检测生成视频对这些规律的系统性破坏。
对应数学框架:
给定视频:
V=x1,x2,…,xT提取多层观测:
ot=[Φsem(xt),Φid(xt),Φfreq(xt),Φmotion(xt)]归一化:
o~t=Norm(ot)状态估计:
st=Fθ(o~1,…,o~t)状态预测:
s^t=Aθ(st−1,mt)残差:
rt=∣st−s^t∣池化:
sV=Pool(st,rtt=1T)分类:
pfake=C(sV)证据输出:
EV=rtsem,rtid,rtfreq,rtmotion这样你的方法不只是输出 real/fake,还能输出解释:
- 哪一帧异常;
- 哪一种状态异常;
- 是身份异常、运动异常、频域异常,还是语义异常;
- 异常是否集中在局部区域。
这会让你的课题更像一个完整系统,而不是简单分类器。
16. 对抗生成方向:如何让 AIGC 视频骗过检测器?#
如果你的课题同时做“攻”和“防”,那么攻击端可以写成:
给定原视频或生成视频:
V=xtt=1T学习一个扰动生成器:
δt=Gθ(xt,ht)生成对抗视频:
xt′=clip(xt+δt,0,1)目标:
θminD(V′)+λvisLvisual(V,V′)+λtempLtemporal(V,V′)+λfreqLfrequency(V,V′)其中 D(V′) 是检测器认为它是 fake 的分数。
这和你之前 residual editor 的思路是一致的,但视频版本必须强调:
temporal consistency否则攻击虽然降低检测分数,但肉眼会看到闪烁。
16.1 更高级的攻击目标:不只是降低检测分数,而是伪装状态分布#
如果防守端检测:
rt=∣st−s^t∣攻击端就不能只优化像素相似度,而要优化:
δmint∑∣st′−s^t′∣也就是说,让修改后的视频在检测器的状态空间里也显得稳定。
攻击目标可以写成:
Lattack=λdetD(V′)+λstatet∑∥st′−s^t′∥+λrect∑∥xt′−xt∥+λtempt∑∥δt−Warp(δt−1)∥这比普通 adversarial noise 更像科研:
攻击不再是添加噪声,而是把生成视频投影回真实视频状态流形附近。
这句话可以作为你课题里的一个高阶观点。
17. 应该真正吸收的科研方法论#
17.1 控制分布#
LayerNorm 控制:
E[x],Var(x)RMSNorm 控制:
∣x∣2Softmax 控制:
i∑pi=1dk 控制:
Var(q⋅k)Causal Mask 控制:
p(j>i)=0FlashAttention 控制:
HBM IO所以在看任何模型模块时,都应该问:
它到底在控制什么变量?控制的是均值、方差、能量、概率、信息流、显存访问,还是梯度路径?
这比背论文强得多。
17.2 好方法通常满足三层统一#
一个强方法通常要同时说清楚三层。
第一层:数学上为什么成立。
例如:
Softmax(z)=Softmax(z−maxz)第二层:算法上解决什么问题。
例如避免指数溢出。
第三层:工程上为什么快。
例如减少 HBM 访问、便于 kernel fusion。
你以后看论文,也可以用这个框架:
| 层次 | 要问的问题 |
|---|
| 数学层 | 它有什么等价变换、约束、优化目标? |
| 算法层 | 它解决了什么训练/泛化/鲁棒性问题? |
| 工程层 | 它是否更快、更省显存、更稳定、更容易部署? |
这正是你从“会跑实验”走向“会做科研”的关键。
18. 最终总结:知识和课题的统一主线#
Transformer 的数值稳定性:
保留相对关系,控制绝对尺度。
AIGC 视频检测也可以总结:
保留真实视频的状态演化规律,检测生成视频对这些规律的破坏。
两者的共同数学思想是:
Normalize→Compare→Detect Residual→Stabilize / Classify在 Transformer 里:
x→Norm(x)→QKT/dk→Softmax→stable representation在 AIGC 视频检测里:
xt→Φ(xt)→Norm(Φ(xt))→rt=∥st−s^t∥→pfake真正吸收的核心:
大模型是靠稳定的尺度、清晰的相对关系和可控的信息流。
AIGC 视频检测不应该只找表面伪影,而应该建模视频内部的稳定状态、相对变化和异常残差。
中心观点:
从 Transformer 数值稳定性出发,我们可以重新理解 AIGC 视频检测:检测器真正要学习的不是某个固定伪影,而是真实视频在时间、语义、身份、频率和物理状态空间中的稳定演化规律。高质量生成视频之所以难检测,是因为它正在逐渐逼近单帧真实分布;未来更强的检测方法必须转向跨帧状态分布、预测残差和多证据一致性建模。