1. 概述
生成模型:
- 对象建模为向量 x∈Rd
- 生成即采样 pdata(x)
- 数据集 z1,z2,...,zn ∼ pdata
- 条件生成 pdata(⋅∣y)
目标:
从易于采样的 pinit (通常 ∼N(0,Id) )出发,通过模型转化为 pdata 。
本文是该note的阅读笔记。
2. 模型
Flow Model
通过ODE建模,
dXtX0=ut(Xt)dt=x0ODEinitial condition X 称作轨迹(trajectory), u 称作向量场(vector field),而其解 φt 是 Rd→Rd 的微分同胚,称作流(flow):
dφt(X0)=ut(φt(X0))dt虽然称作flow model,但是神经网络建模的是向量场 utθ 而不是 φ 。
Diffusion Model
通过SDE建模,
dXtX0=ut(Xt)dt+σtdWt=x0SDEinitial condition通过Euler-Maruyama method离散求解:
Xt+h=Xt+hut(Xt)+hσtϵt , ϵt∼N(0,Id)当 σ=0 时,变为flow model。
SDE生成模型:
- 神经网络: uθ:Rd×[0,1]→Rd,(x,t)↦utθ(x)
- 固定的扩散系数: σt:[0,1]→[0,∞),t↦σt
采样:
- 初始化: X0∼pinit
- 模拟: dXt=utθ(Xt)dt+σtdWt
- 目标: X1∼pdata
3. 构建训练目标
为了训练一个神经网络,我们还需要一个损失函数,比如均方误差(mean-squared error):
L(θ)=∣∣utθ(x)−training targetuttarget(x)∣∣2因此接下来需要找到描述训练目标的(估计)公式。
3.1. 条件和边缘概率路径(Conditional and Marginal Probability Path)
一个条件(插值)概率路径长这样:
p0(⋅∣z)=pinit,p1(⋅∣z)=δz换言之,条件概率路径会逐步将单个数据点转化为初始分布。
边缘概率路径:
z∼pdata, x∼pt(⋅∣z) ⇒x∼pt (从pt中采样)pt(x)=∫pt(x∣z)pdata(z)dz (难以计算)显然:
p0=pinit, p1=pdata
Example: 高斯条件概率路径(Gaussian Conditional Probability Path)
pt(⋅∣z)∼N(αtz,βt2Id) α0=β1=0,α1=β0=1
从高斯条件路径中采样:
z∼pdata,ϵ∼N(0,Id)⇒x=αtz+βtϵ∼pt
3.2. 条件和边缘向量场(Conditional and Marginal Vector Fields)
未完待续