《生成扩散模型漫谈(二十二):信噪比与大图生成(上)》 —— 苏剑林
《生成扩散模型漫谈(二十三):信噪比与大图生成(下)》 —— 苏剑林
同一 Noise Schedule 为什么随分辨率变简单
设加噪图像为
xt=αˉtx0+βˉtε,ε∼N(0,I).(1)
把 s×s 个像素做平均池化。若噪声像素独立且方差为 1,平均后的噪声方差变成 1/s2,标准差变成 1/s;局部平滑的图像信号却近似保持。因此下采样后的式子是
Ds[xt]≈αˉtx0low+sβˉtεlow,εlow∼N(0,I).(2)
其信噪比为
SNRdown(t)=βˉt2s2αˉt2,
是低分辨率模型在同一 t 下 SNR 的 s2 倍。这里依赖“噪声独立、池化取平均、信号在池化窗口内较平滑”;若噪声有空间相关性,方差不会严格按 1/s2 缩小。
高分辨率训练若照搬低分辨率 Noise Schedule,Denoiser 实际看到的样本偏简单,难以充分学习困难噪声区间。解决方向是增大噪声,令不同分辨率在可比较尺度上具有相近 SNR。
训练端:Schedule、架构和多尺度损失
Schedule 对齐只处理学习难度,像素空间大图还带来计算量。Simple Diffusion 的结构策略是尽早把高分辨率特征降采样,把新增层、通道和 Dropout 集中到最低分辨率处,再在输出前恢复大小;模型容量增加,但重计算不长期停留在大特征图上。
普通噪声预测损失为
L1×1=wh1∥ε−ϵθ(xt,t)∥2.
再对目标与预测同时平均池化,得到尺度 s 的辅助目标:
Ls×s=(w/s)(h/s)1∥Ds[ε]−Ds[ϵθ(xt,t)]∥2.(3)
多个尺度的损失共同约束低频结构与高频细节。它不是简单重复像素 MSE:池化后再求平方会显式惩罚区域平均误差,保证高分辨率模型在低分辨率观察下也能正确去噪。
推理端:低分辨率模型的主项
现在换一个问题:模型已经只在低分辨率上训练,能否免训练生成大图?直接把 CNN 用到大尺寸输入,往往还能产生清晰纹理,却因为 SNR 和全局结构错配而失去语义;单纯把小图上采样则保留语义但缺少细节。这正好给出“低分辨率主项 + 高分辨率残差项”的分工。
对公式 (2) 定义尺度修正
ρt=αˉt2+s2βˉt2.
除以 ρt 后,信号与噪声系数的平方和重新为 1。再找训练时间 τ 满足
βˉτ2αˉτ2=βˉt2s2αˉt2.(4)
于是适配低分辨率模型分布的主项是
ϵθmain(xt,t)=Us[ϵθ(ρtDs[xt],τ)].(5)
Us 把低分辨率噪声预测升回目标尺寸。时间重映射 (4) 对齐 SNR,ρt 则对齐模型训练时的总体输入尺度,两者作用不同。
用高分辨率调用补回纹理
同一个卷积 Denoiser 直接在大图 xt 上运行得到 ϵθ(xt,t)。它的全局预测不可靠,但局部纹理仍有价值。可先取其低频部分,再构造只保留高频的残差:
ϵθdetail(xt,t)=ϵθ(xt,t)−UsDs[ϵθ(xt,t)].
Upsample Guidance 把公式 (5) 的全局主项与该细节项组合,再代入原 DDPM/DDIM 更新。主项保证低频语义和正确 SNR,细节项利用 CNN 的局部平移不变性补高频。这里是近似的频率分工,不代表两个分量统计独立,也不能保证任意倍率放大;倍率越大,低分辨率模型未见过的中长程结构越多,近似越弱。
两篇工作的共同闭环
训练大图与免训练放大看似一个改模型、一个改采样,核心变量却相同:平均池化使独立噪声标准差缩小 s 倍,从而让可见 SNR 增加 s2 倍。训练时据此重设 Schedule 并增加多尺度约束;推理时据此重映射时间和归一化输入。前者让新模型适配分辨率,后者让旧模型回到它熟悉的分布。