⚠️ 声明:本仓库中的学习材料来自 MIT 公开课程,仅供个人自学使用,非商业用途。 原始课程讲师:erives@mit.edu、phold@mit.edu
S184 Flow Matching and Diffusion Models/
├── notebooks-en/ # 英文原版 Jupyter Notebook(MIT 课程原版)
│ ├── lab_one.ipynb # 实验一:ODE 和 SDE 的模拟
│ ├── lab_two.ipynb # 实验二:基于得分的生成建模与去噪得分匹配
│ └── lab_three.ipynb # 实验三:流匹配与条件流匹配(最优传输)
│
├── notebooks-中文/ # 📘 中文翻译版 Jupyter Notebook(本项目生成)
│ ├── lab_one.ipynb # 实验一(中文):常微分方程与随机微分方程的模拟
│ ├── lab_two.ipynb # 实验二(中文):基于得分的生成建模与去噪得分匹配
│ └── lab_three.ipynb # 实验三(中文):流匹配与条件流匹配(最优传输)
│
├── translate_notebooks.py # 翻译脚本(将英文版 notebook 翻译为中文版)
└── README.md # 本文件
- 主题:常微分方程(ODE)和随机微分方程(SDE)的数值模拟
- 主要内容:
- Part 0:向量场、ODE、SDE 的基本概念
- Part 1:欧拉法(Euler)与欧拉-丸山法(Euler-Maruyama)数值求解方案
- Part 2:布朗运动、奥恩斯坦-乌伦贝克(OU)过程的实现与可视化
- Part 3:用 SDE(朗之万动力学)进行分布变换
- 主题:基于得分的生成建模(SGM)与去噪得分匹配(DSM)
- 主要内容:
- Part 0:SDE 与 CNF 两种连续时间生成建模方法简介
- Part 1:方差爆炸型 SDE(VE-SDE)、条件得分网络、DSM 损失、训练与可视化
- Part 2:逆向时间 SDE、预测器-校正器(PC)采样器、采样性能研究
- 主题:流匹配(FM)与基于最优传输的条件流匹配(OT-CFM)
- 主要内容:
- Part 0:连续归一化流(CNF)、FM 与 CFM 概述
- Part 1:流匹配目标向量场、FM 损失函数、训练与可视化
- Part 2:OT 条件流匹配目标、CFM 损失函数、训练与可视化
- Part 3(可选):Hutchinson 散度估计、似然计算
运行 Notebook 所需的主要 Python 依赖:
pip install numpy matplotlib torch tqdm seaborn jupyter可选依赖(动画功能):
celluloid+ffmpeg(使用 conda/mamba 安装 ffmpeg,非 pip)conda install -c conda-forge ffmpeg pip install celluloid
启动 Jupyter:
jupyter notebook- 学习使用:推荐按 实验一 → 实验二 → 实验三 的顺序依次学习,内容前后递进。
- 打开方式:在 Jupyter Notebook 界面中进入
notebooks-中文/目录,点击对应.ipynb文件即可。 - 练习题:每个实验包含多个 "Question"(问题)与 "Your job / Your answer"(你的任务/回答)区块,请在空白处填写代码或文字回答。
- 代码保持不变:中文翻译版仅对 Markdown 文本 和 代码注释/docstring 进行了翻译,代码本身、数学公式、变量名 均保持与原版一致,确保可以直接运行。
- 翻译工具:使用
nbformat库读取和写入.ipynb,确保输出合法的 nbformat v4 JSON,避免 Jupyter 无法打开的问题。 - 翻译范围:
- ✅ 所有 Markdown 单元格(标题、正文、问题说明、提示等)
- ✅ 代码单元格中的英文注释(
#开头) - ✅ 代码单元格中的 docstring 文档字符串
- ⛔ 代码逻辑、变量名、数学公式(LaTeX)、类名/函数名——保持原样,确保可执行性
- 若发现翻译错误或不当之处,欢迎自行修改
translate_notebooks.py中的翻译映射后重新运行:python translate_notebooks.py
- 来源:MIT 公开课程(S184)
- 主题:Flow Matching and Diffusion Models(流匹配与扩散模型)
- 讲师联系方式:
erives@mit.edu、phold@mit.edu - 用途:仅供个人自学,不得用于任何商业用途。如需引用请注明原始出处。