Skip to content

About

这个仓库是 S184 Flow Matching and Diffusion Models 课程自学笔记与中文翻译,整理课程讲义、代码、实验记录,仅供个人学习使用,非官方项目。Self‑study notes and Chinese translation for S184 Flow Matching and Diffusion Models course, contains lecture notes & code, for personal learning only, not official.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Flow Matching and Diffusion Models(流匹配与扩散模型)

⚠️ 声明:本仓库中的学习材料来自 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                  # 本文件

实验内容概览

实验一 (Lab One):Simulating ODEs and SDEs

  • 主题:常微分方程(ODE)和随机微分方程(SDE)的数值模拟
  • 主要内容:
    • Part 0:向量场、ODE、SDE 的基本概念
    • Part 1:欧拉法(Euler)与欧拉-丸山法(Euler-Maruyama)数值求解方案
    • Part 2:布朗运动、奥恩斯坦-乌伦贝克(OU)过程的实现与可视化
    • Part 3:用 SDE(朗之万动力学)进行分布变换

实验二 (Lab Two):Score-Based Generative Modeling and Denoising Score Matching

  • 主题:基于得分的生成建模(SGM)与去噪得分匹配(DSM)
  • 主要内容:
    • Part 0:SDE 与 CNF 两种连续时间生成建模方法简介
    • Part 1:方差爆炸型 SDE(VE-SDE)、条件得分网络、DSM 损失、训练与可视化
    • Part 2:逆向时间 SDE、预测器-校正器(PC)采样器、采样性能研究

实验三 (Lab Three):Flow Matching and Conditional Flow Matching (Optimal Transport)

  • 主题:流匹配(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

使用说明

  1. 学习使用:推荐按 实验一 → 实验二 → 实验三 的顺序依次学习,内容前后递进。
  2. 打开方式:在 Jupyter Notebook 界面中进入 notebooks-中文/ 目录,点击对应 .ipynb 文件即可。
  3. 练习题:每个实验包含多个 "Question"(问题)与 "Your job / Your answer"(你的任务/回答)区块,请在空白处填写代码或文字回答。
  4. 代码保持不变:中文翻译版仅对 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
  • 用途:仅供个人自学,不得用于任何商业用途。如需引用请注明原始出处。

About

这个仓库是 S184 Flow Matching and Diffusion Models 课程自学笔记与中文翻译,整理课程讲义、代码、实验记录,仅供个人学习使用,非官方项目。Self‑study notes and Chinese translation for S184 Flow Matching and Diffusion Models course, contains lecture notes & code, for personal learning only, not official.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages