欢迎来到我的博客

Hi, 我是 Qiqi Wu,一名热衷于技术与生活分享的博主, 我的兴趣包括统计机器学习,强化学习,机器人,slam和sfm。

Exponential Moving Average

Adam EMA GAE

March 15, 2026

Monte Carlo Sampling

蒙特卡洛采样 (Monte Carlo Sampling) MCMC Monte Carlo Tree Search (MCTS) Denoising Score Matching

March 10, 2026

Importance Sampling

重要性采样 (Importance Sampling) GRPO/PPO中的重要性采样 Partial filter

March 9, 2026

Trust Region Method

信赖域方法 (Trust Region Method) 的数学原理与实现 Levenberg-Marquardt算法 TRPO和PPO SQP 问题的信赖域方法(trajopt)

March 9, 2026

从随机微分方程 SDE 到扩散模型

这篇文章想从随机微分方程(Stochastic Differential Equation, SDE)出发,推到扩散模型里常见的逆向 SDE: \[d\mathbf{x} = \left[\mathbf{f}(\mathbf{x}, t) - g^2(t)\nabla_{\mathbf{x}}\log p_t(\mathbf{x})\right]dt {}+ g(t)d\bar{\mathbf{w}}\]这个式子看起来突然出现了一个 \(\nabla_{\mathbf{x}}\log p_t(\mathbf{x})\),也就是 score。本文的主线就是解释:这个 score 是怎么从“把扩散过程反过来”自然出现的。 先给一个大图景: SDE 描述单个样本点如何随机运动。 FPE 描述所有样本形成的概率密度如何随时间变化。 扩散模型的前向过程是从数据分布 \(p_0\) 走向噪声分布 \(p_T\)。 生成过程要从 \(p_T\) 走回 \(p_0\),所以需要把前向 SDE 反过来。 把 FPE 的时间反过来并整理成标准形式,就会得到逆向 SDE,其中自然出现 score。 1. 从 ODE 到 SDE 普通微分方程(ODE)描述确定性系统: \[\frac{d\mathbf{x}}{dt}=f(\mathbf{x},t)\]给定初始状态之后,轨迹是确定的。很多高阶微分方程也可以写成一阶向量形式。例如二阶系统可以引入速度 \(v=\dot{x}\),改写为: \[\frac{d}{dt} \begin{bmatrix} x \\ v \end{bmatrix} = \begin{bmatrix} v \\ F/m \end{bmatrix}\]但现实系统里经常存在随机扰动,比如传感器噪声、建模误差、环境扰动。此时只写确定性漂移不够,需要加入随机过程项: \[d\mathbf{x}_t = \mathbf{f}(\mathbf{x}_t,t)dt {}+ g(\mathbf{x}_t,t)d\mathbf{W}_t\]这里: \(\mathbf{f}(\mathbf{x}_t,t)dt\) 是漂移项,表示平均意义下系统往哪里走。 \(g(\mathbf{x}_t,t)d\mathbf{W}_t\) 是扩散项,表示随机扰动有多强。 \(\mathbf{W}_t\) 是标准布朗运动,也叫 Wiener 过程。 Wiener 过程的增量满足: ...

December 17, 2025