LEARNING PLAN / 进阶
扩散模型与 Flow Matching
从概率与噪声出发,逐步推导 DDPM、score 与 Flow Matching,再真实训练二维速度网络,用数值积分和统计检验发现生成失败。
从问题出发,推导机制,再把实现交给新的输入检验。

时长为编写者建议,包含推演与练习,未经学习者计时验证;可按小节分次完成。
WHAT YOU WILL BUILD
完成之后,拿什么证明理解?
- 推导 DDPM 前向边缘与反向高斯后验
- 连接噪声预测、score 与概率流 ODE
- 从条件期望证明 Flow Matching 目标
- 全参数训练二维速度网络并审计梯度
- 比较 Euler/Heun 的精度、调用成本与分布失败
开始前,需要掌握什么?
- 会读写 Python 与张量运算
- 掌握均值、协方差和条件概率
- 理解导数、梯度和基本积分
先修用于选择起点,不限制阅读;遇到缺口可返回相应章节。
THE LEARNING ROUTE
每一步,都有去处。
仅保存在当前浏览器;完成标记不代表通过项目验收。
目标与扩散机制
从二维分布推导 DDPM 前向及反向后验。
概率目标、混合分布与噪声路径
随机程序画出了四个簇,怎样判断它学到了簇内分布,而不只是输出四个中心?
DDPM前向链、累计噪声与训练标签
连续加许多次高斯噪声后,怎样直接写出任意一步的样本分布和训练标签?
DDPM后验、变分目标与反向采样边界
已知带噪样本和干净端点,怎样算出前一步的高斯后验,并连接训练目标?
连续路径与求解
连接 score、概率流与 Flow Matching,比较积分误差。
Score、去噪恒等式与概率流ODE
同一密度演化为什么对应两种 score 系数:概率流 ODE 中的二分之一与反向 SDE 中的一?
条件Flow Matching与边缘速度场
每条条件直线路径都有自己的速度,只回归这些标签为什么能得到总体分布的速度场?
Euler、Heun与可分离的采样误差
同一个正确速度场换用粗步长后生成失败,怎样区分网络误差与积分误差?
训练与分布检查
实际训练二维速度网络,以同一检查点检验生成与失败。
训练二维速度网络与数值梯度验收
回归随机端点差时,怎样知道所有网络参数都在学习,并解释损失不会降到零?
统计验证、故意失败与共同版本验收
同一冻结模型有时看起来不错,怎样用多个种子和互补指标找出它仍然失败的分布特征?
BUILD / TEST / TRANSFER
四簇二维神经生成流实验台
用 PyTorch 2.6 在 CPU 单线程训练二维 Flow Matching 网络,以同一冻结检查点比较解析教师、Euler/Heun 网格和失败基线。
运行环境
建议 Python 3.12,PyTorch 2.6.0;CPU 即可,完整安装步骤见项目 README。
解压后先读 README,再按其中环境与命令运行。完整参考实现与学习任务分开提供。
项目完成核对
这是个人核对清单,不是自动评分。保留输入、结果、失败与复现命令。