扩散模型基本原理

1 生成式模型基本思想

使用模型模拟真实世界的图像分布,可以学习神经网络模型,使其将标准正态分布的每个点映射到真实图像分布的点

2 扩散模型

2.1 正向过程

在这里插入图片描述从原始图像逐步添加噪声,最终得到近似完全噪声的图像
q ( x t ∣ x t − 1 ) = N ( 1 − β x t − 1 ; β I ) q(x_t|x_{t-1})=N(\sqrt{1-\beta}x_{t-1};\beta \bold{I}) q(xtxt1)=N(1β xt1;βI)

β ∈ [ 0 , 1 ] \beta\in[0,1] β[0,1] β \beta β 值越大, x t x_t xt 越接近于噪声;反之, β \beta β 取值越小, x t x_{t} xt 越接近于 x t − 1 x_{t-1} xt1.

ε ∼ N ( 0 , I ) \varepsilon\sim N(0,\bold{I}) εN(0,I) 时, μ + σ ε ∼ N ( μ , σ 2 I ) \mu+\sigma\varepsilon\sim N(\mu,\sigma^2\bold{I}) μ+σεN(μ,σ2I).
α = 1 − β \alpha=1-\beta α=1β
x t = α t x t − 1 + 1 − α t z 1 = α t ( α t − 1 x t − 2 + 1 − α t − 1 z 2 ) + 1 − α t z 1 = α t α t − 1 x t − 2 + ( α t − α t α t − 1 z 2 + 1 − α t z 1 ) \begin{aligned}x_t&=\sqrt{\alpha_t}x_{t-1}+\sqrt{1-\alpha_t}z_1\\&=\sqrt{\alpha_t}(\sqrt{\alpha_{t-1}}x_{t-2}+\sqrt{1-\alpha_{t-1}}z_2)+\sqrt{1-\alpha_t}z_1\\&=\sqrt{\alpha_t\alpha_{t-1}}x_{t-2}+(\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}z_2+\sqrt{1-\alpha_t}z_1)\end{aligned} xt=αt xt1+1αt z1=αt (αt1 xt2+1αt1 z2)+1αt z1=αtαt1 xt2+(αtαtαt1 z2+1αt z1)

由于
z 1 ∼ N ( 0 , I ) z_1\sim N(0,\bold{I}) z1N(0,I) z 2 ∼ N ( 0 , I ) z_2\sim N(0,\bold{I}) z2N(0,I)
所以
1 − α t z 1 ∼ N ( 0 , ( 1 − α t ) I ) \sqrt{1-\alpha_t}z_1\sim N(0,(1-\alpha_t)\bold{I}) 1αt z1N(0,(1αt)I) α t − α t α t − 1 z 2 ∼ N ( 0 , ( α t − α t α t − 1 ) I ) \sqrt{\alpha_t-\alpha_t\alpha_{t-1}}z_2\sim N(0,(\alpha_t-\alpha_t\alpha_{t-1})\bold{I}) αtαtαt1 z2N(0,(αtαtαt1)I)
所以
1 − α t z 1 + α t − α t α t − 1 z 2 ∼ N ( 0 , ( 1 − α t α t − 1 ) I ) \sqrt{1-\alpha_t}z_1+\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}z_2\sim N(0,(1-\alpha_t\alpha_{t-1})\bold{I}) 1αt z1+αtαtαt1 z2N(0,(1αtαt1)I)
因此,可令 z ‾ t ∼ N ( 0 , I ) \overline{z}_t\sim N(0,\bold{I}) ztN(0,I) a ‾ t = ∏ i = 1 t α i \overline{a}_t=\prod^t_{i=1}{\alpha_i} at=i=1tαi
x t = α t α t − 1 x t − 2 + ( 1 − α t α t − 1 ) z ‾ 2 = a ‾ t x 0 + 1 − α ‾ t − 1 z ‾ t \begin{aligned}x_t&=\sqrt{\alpha_t\alpha_{t-1}}x_{t-2}+\sqrt{(1-\alpha_t\alpha_{t-1})}\overline{z}_2\\&=\sqrt{\overline{a}_t}x_{0}+\sqrt{1-\overline{\alpha}_{t-1}}\overline{z}_t\end{aligned} xt=αtαt1 xt2+(1αtαt1) z2=at x0+1αt1 zt

2.2 反向过程

在这里插入图片描述使用神经网络根据 x t x_t xt 预测 x t − 1 x_{t-1} xt1,为了简化任务降低难度,将问题改为根据 x t x_t xt预测噪声,进而利用前向公式来计算上一步图像。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大气扩散模型是用于模拟空气污染物在大气的传输和扩散过程的数学模型。在MATLAB,可以使用不同的方法来实现大气扩散模型。以下是一种常见的方法: 1. 建立模型方程:根据大气扩散的基本原理,可以建立扩散方程,如二维稳态高斯扩散模型。该模型方程可以表示为: ![equation](https://latex.codecogs.com/gif.latex?\frac{{\partial^2C}}{{\partialx^2}}+\frac{{\partial^2C}}{{\partialy^2}}=D) 其,C表示污染物浓度,x和y分别表示空间的水平和垂直坐标,D表示扩散系数。 2. 离散化方程:将模型方程离散化为差分方程,以便在计算机上进行求解。通常,可以使用有限差分方法将偏微分方程转化为差分方程。 3. 设置初始条件和边界条件:为差分方程设置适当的初始条件和边界条件。初始条件表示模拟开始时的初始浓度分布,边界条件表示边界处的浓度值或边界条件。 4. 进行迭代计算:使用MATLAB的循环结构,如for循环或while循环,对差分方程进行迭代计算。每一次迭代都根据前一次迭代的结果来更新浓度值。 5. 可视化结果:使用MATLAB的绘图函数,如contourf或surf,将模拟结果以图形的形式进行可视化展示。 请注意,以上只是一种简单的实现方法,实际应用可能会有更复杂的模型和解算方法。具体实现时需要根据具体问题和模型进行调整和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值