去噪扩散概率模型(公式)

文章详细阐述了前向加噪的过程,通过逐步添加高斯噪声来获取图像标签。在公式推导中,描述了如何从X0到Xt的变换,并解释了α和Z在过程中所扮演的角色。接着,利用贝叶斯公式探讨了去噪的反向过程,旨在从受噪声影响的图像Xt恢复原始图像X0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、前向加噪过程

向前加噪的过程,目的是为了一步一步的获得标签

2、公式的定义和推导

在这里插入图片描述

(β要也来越大:从0.0001->0.002,也就是α要越来越小)

该公式是由 X0不断推导为Xt的结果(也就是通过高斯噪声的一个加噪过程)

接下来要对此最终加噪的结果进行反向推导:

首先,我们可以推导出t-1时刻的X公式:

由此我们尝试得出Xt时刻公式的展开式:

在这里插入图片描述

对上述公式进行变形化简:

其中的Z1、Z2·····即高斯噪声(服从正态分布),也就是说:

1−αtZ1\sqrt{1 - \alpha _{t}}Z11αtZ1 服从 1−αt  1 - \alpha _{t}\:\:1αt高斯分布分布,而αt−αtαt−1Z2\sqrt{\alpha_{t} - \alpha_{t}\alpha_{t-1}}Z_{2}αtαtαt1Z2服从αt−αtαt−1\alpha_{t} - \alpha_{t}\alpha_{t-1}αtαtαt1高斯分布

所以:1−αtZ1+αtαt−1Z2\sqrt{1 - \alpha _{t}}Z_{1} + \sqrt{\alpha_{t}\alpha_{t-1}}Z_{2}1αtZ1+αtαt1Z2完全服从1−αtαt−11 - \alpha_{t}\alpha_{t-1}1αtαt1高斯分布

那么,我们重新建立方程公式:(其中Z服从高斯分布)

在这里插入图片描述

由此,我们发现XtX_{t}XtXt−2X_{t-2}Xt2之间的关系是累乘的关系!!!

在这里插入图片描述

X0X_{0}X0是最初输入图像,α\alphaα表示的是累乘,Z是高斯噪声, 以上是加噪的一个过程

3、去噪过程

贝叶斯公式:P(A|B)=P(B|A)*P(A)/P(B)

注释:P(A|B)为在条件B发生后A发生的概率

在这里插入图片描述

上述公式表示的是在t时刻发生后推算发生t-1时刻的概率(XtX_{t}Xt为随机噪声,X0X_{0}X0为真实图像)

将前向推导2中公式分别列出:

在这里插入图片描述

代入得出:

在这里插入图片描述

又因为正态分布展开式为:

在这里插入图片描述
在这里插入图片描述

由此可以得出:

在这里插入图片描述

又因为在推导中可知XtX_{t}Xt可以由X0X_{0}X0推导出来,便可以反向得出X0X_{0}X0的公式:

在这里插入图片描述

所以最后的结果是:

在这里插入图片描述

### 蒸馏模型与扩散模型的数学公式及其推导 #### 扩散模型的核心理论基础 扩散模型基于热力学中的扩散过程,其目标是从高斯声中逐步音并恢复原始数据。这一过程涉及多个关键组件,包括随机微分方程(SDEs)、分数生成模型(SGMs)以及扩散概率模型(DDPMs)。这些组件通过一系列复杂的数学运算实现从声到清晰信号的转换[^1]。 具体来说,扩散模型可以被描述为一个前向扩散过程和一个反向生成过程。在前向过程中,输入的数据逐渐加入高斯声;而在反向过程中,则试图学习如何移除这些声以重建原始数据。这种机制可以通过以下两个阶段来表示: - **前向扩散过程** 前向扩散过程可以用马尔可夫链的形式定义,其中每一步都增加少量的高斯声 \( \epsilon_t \sim N(0, I) \),使得初始分布 \( q(x_0) \) 变成最终完全由声主导的状态 \( q(x_T | x_{T-1}) \)[^2]。 数学上,该过程可通过如下公式表达: \[ q(\mathbf{x}_t|\mathbf{x}_{t-1})=\sqrt{1-\beta_t}\mathbf{x}_{t-1}+\sqrt{\beta_t}\boldsymbol\epsilon,\quad \text{where } \boldsymbol\epsilon \sim \mathcal{N}(0,I). \] - **反向生成过程** 在训练期间,模型的目标是最小化预测误差,从而优化参数以便更精确地估计条件分布 \( p_\theta (\mathbf{x}_{t-1} |\mathbf{x}_t )\) 。此部分通常采用变分推理框架来进行近似计算。 对于实际应用而言,例如文本生成场景下,上述原理允许系统自动生成高质量的内容而无需额外的人工干预或外部指导信息作为支持[^3]。 #### 蒸馏模型概述及对比分析 相比之下,蒸馏模型主要关注的是压缩大型预训练网络的知识至较小规模的学生模型之中。它并不直接涉及到像扩散模型那样的连续时间动态变化建模方式,而是侧重于利用教师模型产生的软标签 (soft labels) 来引导学生模型的学习方向。这种方法不仅有助于减少计算资源消耗,还能保持较高的准确性水平。 以下是两种方法之间的一些显著区别点总结: | 特性 | 扩散模型 | 蒸馏模型 | |--------------------|-----------------------------------|------------------------------| | 主要用途 | 数据生成 | 模型简化 | | 关键技术 | SDE/SGM/DDPM | 教师-学生架构 | | 训练难度 | 较大 | 中等 | 尽管两者目的不同,但在某些特定条件下也可能存在交集——比如当尝试将复杂的大规模扩散模型转化为轻量级版本时可能会借鉴知识蒸馏的思想和技术手段加以实施。 ```python import numpy as np def forward_diffusion_step(x_prev, beta_t): epsilon = np.random.normal(size=x_prev.shape) sqrt_beta_t = np.sqrt(beta_t) sqrt_one_minus_beta_t = np.sqrt(1 - beta_t) x_next = sqrt_one_minus_beta_t * x_prev + sqrt_beta_t * epsilon return x_next, epsilon # Example usage of the function with dummy data and parameters. dummy_data = np.array([1., 2., 3.]) betas = np.linspace(0.0001, 0.02, num=10) for t in range(len(betas)): next_x, _ = forward_diffusion_step(dummy_data, betas[t]) print(f"At step {t}, new state is {next_x}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值