想要完整理解diffusion model的推导过程,可以看看Lilian Weng的这篇博客(https://lilianweng.github.io/posts/2021-07-11-diffusion-models/),是我目前找到的推导过程最细的,“特别好”。
分享一个小tip。中间我推导卡壳的地方是 Loss从Lt最小化一个KL散度,re-parametrized 成为minimize predicted mean and real mean后,公式为什么长那样。其实很简单,就是优化最大似然,下面框里的Lt loss其实就是predicted mean的负log likelihood(让predicted mean和real mean越接近越好)。至于为什么能从最小化KL散度简化为最小化mean diff,参见李宏毅的这个视频(https://www.youtube.com/watch?v=m6QchXTx6wA)。
最后可以结合这里理解DDPM的简化版code实现,https://dataflowr.github.io/website/modules/18a-diffusion/(一顿推导猛如虎,最后loss很简单)