Diffusion相关前置知识
Diffusion相关前置知识
最大似然估计(Maximum Likelihood Estimation - MLE)
对于拟合数据分布这件事,最常见的做法就是最大化此然估计:即真实数据分布里采样出来的数据要能够在你建模的数据分布里概率最大化。最大似然估计是一种统计方法,用来估计一个概率模型中的参数,使得该模型能够最大化观测数据出现的概率。 \[ E_{X\sim{p_{data}(x)}}[logp_\theta(X)] \] 公式中的\(X\)取自真实分布,目标是使得\(X\)在\(p_\theta\)中概率最大。
能量模型
首先,在一个复杂的系统里 若想要表示一个变量\(x\in{X}\)的概率\(P(x)\),需要满足以下性质:
- \(P(x)>0\)
- 所有变量概率之和为1
- 方便计算
很容易会想到使用指数函数(天然满足大于0)
所以\(P(x)\)可以表示为: \[ P(x) = \frac {1}{Z}e^{f(x)} \] \(f(x)\)是关于\(x\)的函数,其中\(Z\)是正则(normalize)项 \[ Z = \textstyle\sum_{x\in{X}}e^{f(x)} \] 所以 \[ P(x) = \frac{e^{f(x)}}{\sum_{x\in{X}}e^{f(x)}} \] 这和softmax函数有些类似
统计物理中玻尔兹曼分布有着差不多的形式: \[ P(x) = \frac{e^{-E(x)}}{\sum_{x\in{X}}e^{-E(x)}} \] 这里的\(E\)表示状态的能量,之前的\(f(x)\)就可以写成\(f(x) = -E(x)\)
所以这样的建模方法就叫做能量模型。通常在机器学习中E(x)可以表示为似然函数或者对数似然函数或者值函数,所以有时候求最大似然就可以被表示为求最小能量值。
比如在分类问题中,对于特征\(X = \{x_1, x_2, ..., x_n\}\)和标签\(y \in Y\),我们可以建立能量函数\(E(x, y)\),这时候能量函数代表\(x\)和\(y\)的匹配程度,能量越低匹配程度越好。
所以,\(y^* = argmin_{y\in{Y}}E(X,y)\)
注意这时候最小化这个能量函数是用来推断结果的,区别于最小化损失函数可以用来训练能量函数\(E\)。
流型
以下定性的解释来自参考:https://www.zhihu.com/question/24015486/answer/194284643
流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流型映射到高维空间上的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上只需要比较低的维度就能唯一地表示。
高维数据其实是由低维流型生成的,如果我们能够模拟这个生成过程,再通过对低维流型的微调,应该能得到对应的“有意义且有道理”的高维数据。
我们可以把生成过程看作:输入一个特征空间的低维编码,得到一个输出空间的高维图像。如何证明我们学习到的这个生成过程就是像人脑一样从低维流形映射到高维空间呢?还记得我们之前说过,流型空间一般应该是连续的,而映射到的高维空间的数据也应该在流形连续调整时变得连续且有意义。