©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 科学空间
研究方向 | NLP、神经网络
上一篇文章《生成扩散模型漫谈:信噪比与大图生成(上)》中,我们介绍了通过对齐低分辨率的信噪比来改进 noise schedule,从而改善直接在像素空间训练的高分辨率图像生成(大图生成)的扩散模型效果。而这篇文章的主角同样是信噪比和大图生成,但做到了更加让人惊叹的事情——直接将训练好低分辨率图像的扩散模型用于高分辨率图像生成,不用额外的训练,并且效果和推理成本都媲美直接训练的大图模型!
这个工作出自最近的论文《Upsample Guidance: Scale Up Diffusion Models without Training》[1],它巧妙地将低分辨率模型上采样作为引导信号,并结合了 CNN 对纹理细节的平移不变性,成功实现了免训练高分辨率图像生成。
思想探讨
我们知道,扩散模型的训练目标是去噪(Denoise,也是 DDPM 的第一个 D)。按我们的直觉,去噪这个任务应该是分辨率无关的,换句话说,理想情况下低分辨率图像训练的去噪模型应该也能用于高分辨率图像去噪,从而低分辨率的扩散模型应该也能直接用于高分辨率图像生成。
有这么理想吗?笔者用之前自己训练的 128*128 的人脸图像(CelebA-HQ)扩散模型试了一下,即直接将它当成 256*256 的模型来推理,生成结果的画风是这样的:
▲ 将128分辨率的扩散模型当256分辨率用的生成效果
可以看到,生成结果有两个特点:
1. 生成结果已经完全不是人脸图,说明 128*128 训练的去噪模型无法直接当成 256*256 的来用;
2. 生成结果虽然不理想,但很清晰,没有明显模糊或者棋盘效应,且保留了一些人脸的纹理细节。
我们知道,直接将小图放大(上采样),就是一个最最基本的大图生成模型,但取决于上采样算法的不同,直接放大后的图片通常都会有模糊或者棋盘效应的出现,即缺乏足够的纹理细节。这时候一个“异想天开”的想法是:既然小图放大缺乏细节,而直接将小图模型当大图模型推理会保留一些细节,那么我们可否用后者给前者补充细节?
这就是原论文所提方法的核心思想。
数学描述
这一节我们用公式把思路重新整理一下,看下一步该怎么做。
首先统一一下符号。我们目标图像分辨率是 ,训练图像分辨率是 ,所以下面的 都是 大小(对于图像来说还有个通道维度),而 都是 大小, 是将 分辨率平均 Pooling 到 的下采样算子, 则是将 分辨率最邻近插值(即直接重复)到 的上采样算子。
我们知道,扩散模型需要一个训练好的去噪模型 ,以 DDPM 为例(这里采用的是《生成扩散模型漫谈:DDPM = 贝叶斯 + 去噪》一文的形式,跟主流形式基本对齐),它的推理格式为
其中 的主流取法是 或者 。但现在我们没有在 分辨率下训练好的