Featured image of post MIT 6.S978速通

MIT 6.S978速通

速通图像生成模型基础

在学习并且整理完MIT 6.S184后,我开始了MIT 6.S978的学习。

这是一门研究生课程,课程内容以论文阅读为主,但是由于我仅仅是对这个方向感兴趣,而all-in的话风险太高了,所以就没有读论文。

课程的6个assignment以生成MNIST手写数字图片为主线。

  • assignment1的内容是实现AutoEncoder以及Variational AutoEncoder。
  • assignment2的内容是针对的是AutoRegressive,然后要用pixelCNN来生成图片,这次作业令我印象比较深刻的有两点:
  1. AR在语言生成模型中是统治级别的存在,但是在图像生成中,由于它不满足构图原则的先验知识,所以最终的效果宛如鬼画符
  2. 第一次直观感受到AR在训练的时候防止数据泄露有多重要了:训练的时候loss为0生成图像也很标准,但是测试的时候生成的全是黑色,debug半天才发现原来是写并行CNN的时候出现了数据泄露的问题。
  • assignment3的内容是使用GAN生成图片,给我的主要收获是明白了多网络深度学习系统应该如何训练(代码细节)。
  • assignment4的内容是使用DDPM生成图片,第一次看DDPM原论文内容,花了半天才搞明白和MIT 6.S184中的区别到底在哪,这个论文中学习的网络是为了预测加入的噪声,但是后来被证明可以从SDE和ODE的角度去理解这个方法。
  • assignment5的内容是使用Flow Matching生成图片,最熟悉的一集。
  • assignment6的内容是使用Consistency model生成图片,但是我最后还是没有调好,生成的一直是噪声,感觉是skeleton code里面的某些细节我没有注意到,不管了开摆。Consistency model的目标是学习一个函数直接把一张加了噪声的图像映射回原图,训练的主要方式有一致性蒸馏和一致性训练,前者需要一个与训练好的diffusion模型,后者直接学,但是训练目标都是为了加噪声过程中的任何图像预测出来的结果尽可能相近。原论文足足40多页,附录部分的理论推导有20多页,让人叹为观止。

总的来说这个课我还是速通了,基本了解了Generative model的发展大致脉络。这个领域目前来看还是非常理论驱动的,需要大量的数学推导以及代码实践细节和硬件支持才能做出来一个demo级别的模型。向炼丹师们致敬。

最后扔上课程网站,总的来说不是太推荐这门课,可以随便做做assignment消遣一下。https://mit-6s978.github.io/schedule.html

comments powered by Disqus