---
# System prepended metadata

title: 讨论 2022-11-22

---

讨论 2022-11-22
=

## 生成模型与概率图模型（三）

## Diffusion model

上一次介绍了diffusion model通过不断地高斯采样将数据变为到达标准噪声，再将标准噪声还原回数据分布。

其中，数据为$X_0$，标准噪声为$X_T$，正过程$q(x_t|x_{t-1}) = \mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1}, \beta_t I)$,逆过程为$p(x_{t-1}|x_t)=\mathcal{N}(x_{t-1};\mu_\theta(x_t, t), \Sigma_\theta(x_t,t))$

由于diffusion涉及的公式比较多，并且之前已有整理的很完善的工作，这里就摘录了一部分已有的推导，并在关键环节加一些注解，方便大家理解。完整内容可以参考 https://lilianweng.github.io/posts/2021-07-11-diffusion-models/


我们要处理的第一个问题是由递推形式求出通项，以方便我们后续处理，
![](https://i.imgur.com/tYjN6GS.png)

这部分主要用到了两个知识点，一是高斯分布的重参数化，即$\mathcal{N}(\mu, \sigma^2)= \mu + \sigma \epsilon, \epsilon \sim \mathcal{N}(0, I)$，二是两个高斯分布的方差合并

有了 $q(x_t|x_0)$后，我们就可以着手探讨逆向过程（即生成过程），$q(x_{t-1}|x_t)$了。但是这个条件概率很难求解，可以考虑两方面，一个是把噪声去掉，这本身需要统计信息，即我们需要看很多数据点，当统计充分到把噪声的影响降到足够低的时候，这个条件概率才能求的准。二是信息角度，$x_{t-1}$到$x_{t}$是信息减少，很容易，反过来是信息增加，这就很困难了。为了规避这个问题，diffusion转而估计 $q(x_{t-1}|x_t, x_0)$ 。 因为引入了$x_0$，上述两个问题都不存在了，不过实际生成时我们没有原始数据，所以这里引入答案的思想和VAE其实很像。

![](https://i.imgur.com/fCfUabR.png)
这里的技巧是抽取一个exp到外面，里面就把乘法变成加法了。下面就是重点了，我们如何把这个$q(x_{t-1}|x_t,x_0)$写成高斯的形式呢？

![](https://i.imgur.com/btRU3HG.png)

这里的主要技巧是把高斯形式的展开，我们考虑
\begin{gather}
\frac{(x-\mu)^2}{2\sigma^2}=\frac{x^2-2\mu x+\mu^2}{2\sigma^2} = \frac{1}{2\sigma^2}x^2 - \frac{\mu}{\sigma^2}x + \frac{\mu^2}{2\sigma^2}
\end{gather}

对号入座就把$\mu,\sigma$求出来了

之后便是loss的推导，最大似然的变分推导就略去（可见VAE部分）
![](https://i.imgur.com/VZDZb6g.png)

这部分推导比较朴实，把之前提到的$q(x_{t-1}|x_t,x_0) = q(x_t|x_{t-1},x_0) \frac{q(x_{t-1}|x_0)}{q(x_t|x_0)}$反过来用了一下。

我们主要关注中间这一项KL，由此引出的loss即
![](https://i.imgur.com/H4aAvaW.png)

这个是由两个高斯分布之间的KL推导出来的，具体可参考 https://stanford.edu/~jduchi/projects/general_notes.pdf 最后一部分

## 概率图模型简述

概率图模型涉及众多知识，但在深度学习中应用的并不算广泛，这里只做一个很笼统的介绍，具体方法可查阅有关书籍

![](https://i.imgur.com/rxO3dPz.png)

### 概率图模型是什么？
用有向图（贝叶斯网络）或无向图（马尔可夫随机场）来描述随机变量之间的关系，可以理解为是对一个巨大的联合概率的拆解。

### 什么时候需要用？
首先我们有多个随机变量（3个及以上），才有引入概率图模型的可能性，如果多个变量关系简单，那么也不需要概率图模型。

### 概率图模型的两大研究问题
**如何构造一个图** 图的构造其实指的是关系的构造，不涉及增加或删除节点。相应算法有多种分类方法，我个人认为分为两类比较合适，一是局部观测，二是全局观测，第一种着重于判定每一条边是否存在，而第二种着重于全图打分，考量整体性。

这里简单介绍一个关于整体性的例子（与概率图模型无关），假定有100个同学要分组，每个人可以提名5想一起的同学和5个不想一起的同学，怎样分配可以最大程度满足大家的意愿。这就是一个典型需要考虑整体性的问题。具体解法可以参见graph multi-cut。

**如何根据一个图进行推理** 这里用推理这个词其实不够恰当，他的意思图中某些随机变量确定了取值或给出了概率，求其他未知变量的取值或概率。有很多算法可以完成这一任务，比如Belief Propagation， Maximum Posterior Probability等

### 为什么深度学习少用概率图模型？
个人认为根本问题在于随机变量的选取，统计学中，往往节点很容易知道，比如系统的状态，故障的类型，各个传感器的度数，我们只需要研究他们之间的关系就可以了。但深度学习里面，一张图像是一个随机变量，还是每个像素点是一个随机变量？我们希望他们之间有多少联系，这个规模很可能远超以前概率图模型的使用场景。再者，一句话，一个单词，一个词组，划分随机变量的不同方式会带来很不一样的概率图模型，每句话划出来的随机变量一不一致。如果把隐状态作为随机事件，那问题就更复杂了。