正文
我们先来看一个简单的case。
有一组坐落在x轴的点集,最小和最大的数值为-4和4。我用浅绿色将这些点标记,记作X0X_0X0

X0∈{
(−4,0),(−3,0),(−2,0),(−1,0),(0,0),(1,0),(2,0),(3,0),(4,0)} X_0 \in \{(-4,0), (-3,0),(-2,0),(-1,0),(0,0),(1,0),(2,0),(3,0),(4,0) \} X0∈{(−4,0),(−3,0),(−2,0),(−1,0),(0,0),(1,0),(2,0),(3,0),(4,0)}
很明显,X0X_0X0分布的特点是9个点都坐落在X轴上,并且有大小范围约束。
那么,如果我们想将X0X_0X0代表的线段分布变成半圆线段,该如何做呢?
用X1X_1X1记作半圆线段对应的分布,学过高中数学的同学会想到圆形公式:
x02+x12=42x1=42−x02 x_0^2 + x_1^2 = 4^2 \\ x_1 = \sqrt {4^2 - x_0^2} x02+x12=42x1=42−x02
这里我们只考虑正半轴的情况。因此,定义f(x)=42−x2f(x)=\sqrt {4^2 - x^2}f(x)=42−x2 是将分布X0X_0X0转为X1X_1X1的精准映射函数

用红色的点集表示分布X1X_1X1。
然而现实问题会更加复杂,我们往往找不到一个精准映射的函数,更多的问题是已知X0X_0X0和X1X_1X1,需要找到fff。因此考虑一种复杂的情况,已知X和Y,但不知道fff,如何让X分布映射到Y上。
有的同学可能想到了,我们可以设计一条轨迹,或者叫路径,让X0X_0X0逐渐往X1X_1X1上迁移,这个轨迹可能有很多步,我们假设第0步为0,最后一步为1。0-1之间的任意步骤都是轨迹上的中间态XtX_tXt。
那我们可以设计一个最简单的路径,路径上的中间态XtX_tXt为
Xt=(1−t)×X0+t×X1X_t = (1-t) \times X_0 + t \times X_1 Xt=(1−t)×X0+t×X
DDPM原理与实践

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



