如何入坑 Diffusion 方向?

计算机的 Diffusion 方向如何去入坑呢?就不知道从哪里下手,基础又不是很好,然后去看论文的时候,那些公式看不懂?该怎么办?目的是写出论文。
被浏览
14,531

创建时间:2024-06-04  14:54:44

最后编辑:2024-06-04  14:54:44

你可以邀请下面用户,快速获得回答 展开/折叠

2 个回答

616 人赞同了该回答

首先可以先看看普渡大学Stanley Chan老师写给本科生和研究生初学者的tutorial,通俗易懂。


然后可以看看Diffusion model的原论文,一共有三篇,再加上一篇总结:

  • 加州伯克利的Johnathan Ho写了一篇Denoising Diffusion Probabilistic Model(DDPM),是第一篇把diffusion调出较好效果的论文,搞CV一般指搞懂DDPM就差不多。
  • 同时期斯坦福的Yang Song写了Noise Conditional Score Network(NCSN),通过score matching的方式来估计数据分布概率密度的梯度。
  • 然后Yang Song在这两篇的基础上用随机微分方程把Diffusion Model的理论框架统一,提出了Score-SDE。
  • 对这几篇很好的总结是谷歌Calvin Luo的工作,作者不仅对各种公式进行了汇总,还阐明了和VAE的关系。


再进一步是后面的人针对前面出现的问题进行的改进:

  • 和Yang Song同一个组的Jiaming Song提出了DDIM,加速了diffusion采样速度。
  • Yang Song针对NCSN的各种问题提出了各种tricks,在这篇Improved Techniques for Training Score-Based Generative Models当中
  • Nvidia在noise schedule上做改进,提出了EDM,很多人都用这篇的代码

再然后可以看看具体应用领域了!

比如解反问题:改进diffusion sample算法来进行后验采样。

比如Diffusion可解释性相关的问题:

比如Latent Diffusion: 把encoder-decoder与diffusion process结合,在latent space上做文章

比如工业界最火的Stable Diffuison, Sora背后的原理DiT, 这里就不具体贴论文了。

除此之外我个人对diffusion的loss的各种形式很感兴趣,读了一部分这方面的论文:

  • Yang Song证明了score-matching loss和DDPM用的ELBO loss在某种意义上等价
  • 谷歌的Ruiqi Gao和Kingma(就是VAE和Adam的作者)深入研究了ELBO加weighting的问题

与此同时代码Huggingface提供专门的Diffusers库,各种模型各种scheduler集成得很到位,可以跑来玩玩。

在这里还可以分享一个网站scorebasedgenerativemodeling.github.io。这个网站列出了所有与Diffusion Model相关论文,是Diffusion Schrödinger Bridge作者整理的。

加油!Diffusion Model看着理论框架很复杂,但实际上就是条件概率来回推。说了这么多我感觉初学可以只看看DDPM当中的算法,然后直接上手代码实践。具体推导啥的略过,回头需要的时候慢慢来补也行。如果想了解全貌的话,就看看第一篇tutorial。每个人都有自己的学习历程,我在这里仅仅是分享了自己的供参考,希望能帮助你少走弯路。

祝idea都work,paper多多。

109 人赞同了该回答
发布于 2024-06-12 14:25・IP 属地美国

入坑强烈推荐Jia-Bin Huang的How I Understand Diffusion Models。

我的recipe:

先看这个视频感觉一下。然后再去看论文。看了论文之后成功脑袋成为浆糊更加似懂非懂之后,之后再去看视频洗洗脑子。