DDAE: Denoising Diffusion Autoencoders are Unified Self-supervised Learners
Paper:https://arxiv.org/abs/2303.09769
Code:https://github.com/FutureXiang/ddae
TL; DR:扩散模型的训练其实就是训练一个去噪模型,考虑到类似的去噪自编码器能够提取出图像线性可分的表征用于图像分类,本文也尝试将 diffusion 模型视觉表征模型,拿模型中间层的激活值作为特征来做 linear probing。从而,扩散模型就既可以作为生成式模型,也可以作为判别式模型,故称之为 “统一” 自监督学习模型。
方法
本文的做法很简单:直接拿扩散模型的中间层激活值作为特征,池化一下,然后接个分类头做分类任务。在 pixel diffusion (如 DDPM) 和 latent diffusion (如 DiT) 两类模型上都可以做。
UNet 是一个 encoder-decoder 模型,哪一层的用作分类的效果比较好呢?另外,我们知道 diffusion 模型在训练时有 T T T 个时间步,对于不同的时间步,会加入不同大小的高斯噪声,那么在将其特征用于分类时,要不要加噪声,加多少噪声效果比较好呢?
针对上述两个问题,作者也使用 grid search 进行了超参搜索,结果如下。可以看到,是中间层的特征的线性可分性比较好,而非一般认为的最后一层。加入不强不弱适当强度的噪声(注: t 越大,噪声强度越大),能得到最好的效果。
作者还使用了 alignment-uniformity 中提出的用于评价一个表征好坏的 alignment、uniformity 两个指标,来实现 label-free 的超参选择。结果如下图所示。横纵轴表示 alignment 和 uniformity 两种损失的值(越小越好),颜色表示实际做 linear probe 的准确率。可以看到确实是 alignment、uniformity 都更好(图中靠近左下角)的层,线性可分性也更好。
总结
DDAE 尝试将 diffusion 模型看作一种去噪自编码器,来将其中间层激活值作为表征,处理分类任务。并进行了超参搜索和表征空间的研究。