从另一种简单的形式理解扩散模型原理和代码实践

DDPM原理与实践

正文

我们先来看一个简单的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=42x02
这里我们只考虑正半轴的情况。因此,定义f(x)=42−x2f(x)=\sqrt {4^2 - x^2}f(x)=42x2 是将分布X0X_0X0转为X1X_1X1的精准映射函数
在这里插入图片描述
用红色的点集表示分布X1X_1X1

然而现实问题会更加复杂,我们往往找不到一个精准映射的函数,更多的问题是已知X0X_0X0X1X_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=(1t)×X0+t×X

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值