MIT 6.S184课程笔记1-Flow and Diffusion Models
这个系列是MIT 6.S184 - Introduction to Flow Matching and Diffusion Models的同步课程笔记。
生成式模型是如今AI社区最为火热的话题。从图像生成到视频生成,再到如今已经取得广泛应用的大语言模型,这些应用的背后都是生成式模型在发挥作用。尽管这些场景中的数据类型各不相同,但它们大多都是使用了同一套算法,即本门课程将要着重讨论的流模型与扩散模型。
和其它同类课程相比,本门课程会更关注流模型与扩散模型背后的数学原理。具体来说,我们会借助ODE以及SDE这样的数学工具来理解模型的数学本质,同时也会通过一些lab动手实现相关的模型和算法。
From Generation to Sampling
为了方便计算机表示,我们一般会把不同类型的数据都结构化为多维数组。以RGB图像为例,在计算机中图像都是以[H, W, 3]尺寸的3维数组进行表示。类似地,视频可以表示为[T, H, W, 3]尺寸的4维数组,而分子结构则可以类似表示为[N, 3]尺寸的2维数组。显然,这些结构化的数据本质上都是使用向量来进行表示。
对于结构化数据的生成问题,我们可以将其形式化为高维向量的概率分布问题。我们为高维空间定义一个概率密度函数,每个数据点上的函数值都对应标签的概率(密度)。这样生成结果的好坏就可以使用进行概率密度的大小进行描述。
在这样的视角下,数据的生成过程实际上就是从数据的概率密度函数中进行采样的过程。类似地,我们的训练数据实际上也是从真实数据的概率分布中获取的一次抽样。
值得额外说明的是,实践中应用更为广泛的模型是条件生成模型,这种模型的好处是可以通过提示词来更好地控制生成数据的结果。从数学的角度出发,迁移到条件生成模型只需要把普通的概率换成条件概率即可。在后面的课程里我们还会专门介绍相关的技术,现阶段先专注于通常的无条件概率即可。
而数据生成则需要从高维数据的概率分布中进行采样。一般来说直接对高维分布进行采样是比较困难的,目前通用的做法是从一个相对好采样的初始概率分布(如正态分布)中进行采样,然后通过模型变换到目标概率分布上。从这个角度看,生成模型的实质是从初始分布到目标分布的变换。