<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>DDPM on ClarkFlyBee&#39;s Blog</title>
    <link>https://clarkflybee.github.io/tags/ddpm/</link>
    <description>Recent content in DDPM on ClarkFlyBee&#39;s Blog</description>
    <image>
      <title>ClarkFlyBee&#39;s Blog</title>
      <url>https://clarkflybee.github.io/images/show.png</url>
      <link>https://clarkflybee.github.io/images/show.png</link>
    </image>
    <generator>Hugo -- 0.154.5</generator>
    <language>zh-cn</language>
    <copyright>2026 ClarkFlyBee · GitHub</copyright>
    <lastBuildDate>Tue, 24 Feb 2026 20:32:24 +0800</lastBuildDate>
    <atom:link href="https://clarkflybee.github.io/tags/ddpm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>“残差扩散”拯救短临降水预测？DiffCast论文阅读</title>
      <link>https://clarkflybee.github.io/posts/2026-02-24-diffcast-deep-dive/</link>
      <pubDate>Tue, 24 Feb 2026 20:32:24 +0800</pubDate>
      <guid>https://clarkflybee.github.io/posts/2026-02-24-diffcast-deep-dive/</guid>
      <description>&lt;div class=&#34;callout callout-info&#34;&gt;
  &lt;div class=&#34;callout-header&#34;&gt;
    &lt;span class=&#34;callout-icon&#34;&gt;ℹ️&lt;/span&gt;
    &lt;span class=&#34;callout-title&#34;&gt;写在前面&lt;/span&gt;
  &lt;/div&gt;
  &lt;div class=&#34;callout-content&#34;&gt;
    &lt;p&gt;本文尚未完成，但近期不会补充完整。&lt;/p&gt;
&lt;p&gt;这里记录一下还需要写的部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;论文方法部分尚未完成&lt;/li&gt;
&lt;li&gt;实验结果与分析&lt;/li&gt;
&lt;li&gt;复现（如果可以的话，项目组里有学长指出研究附带的Github仓库中，代码并不完整，复现可能有困难）&lt;/li&gt;
&lt;/ul&gt;

  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;在刚接触气象领域研究时，学长推荐我阅读《&lt;a href=&#34;https://arxiv.org/abs/2312.06734&#34;&gt;DiffCast: A Unified Framework via Residual Diffusion for Precipitation Nowcasting&lt;/a&gt;》这篇论文，说可以参考学习&lt;strong&gt;扩散模型&lt;/strong&gt;如何应用在气象领域，解决短临降水问题。&lt;/p&gt;
&lt;p&gt;学长自己的研究中，曾经将 &lt;strong&gt;DiffCast&lt;/strong&gt; 作为Baseline之一（据他自己说，效果不够好hh）。我们现在手上的工作也是扩散模型相关，因此阅读这篇论文还是很有必要的。&lt;/p&gt;
&lt;h2 id=&#34;相关知识铺垫&#34;&gt;相关知识铺垫&lt;/h2&gt;
&lt;h3 id=&#34;短临降水问题定义&#34;&gt;短临降水问题定义&lt;/h3&gt;
&lt;p&gt;我们来看看文章如何定义短临降水问题：&lt;/p&gt;
&lt;p&gt;短临降水问题可以表述为一个时空预测问题（&lt;em&gt;&lt;strong&gt;Spatio-temporal prediction problem&lt;/strong&gt;&lt;/em&gt;），基于当前的观测数据，预测未来很短时间范围内（0~6h）的高时空分辨率降雨情况&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;输入：$L_{in}$ 帧初始雷达回波图像序列 $x=[x_i]^0_{i=-L_{in}} \in \mathbb{R}^{L_{in} \times H \times W \times C}$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;输出：未来 $L_{out}$ 帧序列 $y=[y_i]^{L_{out}}_{i=1} \in \mathbb{R}^{L_{out} \times H \times W \times C}$&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数学本质：建模条件概率分布 $p(y|x)$&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;翻译一下，这个公式表示 ”&lt;strong&gt;在已知 $x$ 的条件下，$y$ 发生的概率分布&lt;/strong&gt;“。&lt;/p&gt;
&lt;p&gt;我们预测的不是唯一的结果，而是要所有未来情况的发生概率。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;短临降水问题不仅仅是“预测下一帧图像”，而是一个&lt;strong&gt;需要同时解耦并建模“全局确定性运动”与“局部随机残差”的复杂时空演化问题&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;扩散模型&#34;&gt;扩散模型&lt;/h3&gt;
&lt;p&gt;扩散模型（&lt;em&gt;&lt;strong&gt;DDPM&lt;/strong&gt;&lt;/em&gt;）主要包含两个过程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;前向扩散（Forward Diffusion）&lt;/p&gt;
&lt;p&gt;给定一个清晰图像 $x_0$，在 $T$ 步内逐步加入高斯噪声，得到 $x_1,x_2,\dots,x_T$ 。到了 $x_T$ ，图像就变成了纯高斯噪声。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;逆向去噪（Reverse Denoising）&lt;/p&gt;</description>
    </item>
    <item>
      <title>Transformer &#43; 扩散模型：DiT 入门</title>
      <link>https://clarkflybee.github.io/posts/2026-02-06-transformer-dit-primer/</link>
      <pubDate>Fri, 06 Feb 2026 20:09:38 +0800</pubDate>
      <guid>https://clarkflybee.github.io/posts/2026-02-06-transformer-dit-primer/</guid>
      <description>&lt;div class=&#34;callout callout-info&#34;&gt;
  &lt;div class=&#34;callout-header&#34;&gt;
    &lt;span class=&#34;callout-icon&#34;&gt;ℹ️&lt;/span&gt;
    &lt;span class=&#34;callout-title&#34;&gt;写在前面&lt;/span&gt;
  &lt;/div&gt;
  &lt;div class=&#34;callout-content&#34;&gt;
    &lt;p&gt;本文尚未完成，但近期不会补充完整。&lt;/p&gt;
&lt;p&gt;这里记录一下还需要写的部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;diffusion.py&lt;/code&gt; 的代码解析&lt;/li&gt;
&lt;li&gt;DiT 模型小实验的整体运行效果&lt;/li&gt;
&lt;li&gt;参考文献也需要补充&lt;/li&gt;
&lt;/ul&gt;

  &lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;本文内容基于论文 &lt;a href=&#34;https://arxiv.org/abs/2212.09748&#34;&gt;Scalable Diffusion Models with Transformers&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;但文章内容并不是论文阅读笔记，而是对 DiT 的入门介绍。未来有机会可以写一个详细的阅读笔记。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;扩散模型介绍&#34;&gt;扩散模型介绍&lt;/h2&gt;
&lt;p&gt;扩散模型（&lt;em&gt;&lt;strong&gt;Denoising Diffusion Probabilistic Models&lt;/strong&gt;&lt;/em&gt;，DDPMs）在图像/音频/视频生成方面取得了显著的成果。&lt;/p&gt;
&lt;p&gt;本文中，采用离散时间（潜变量模型）（discrete-time (lantent variable model)）的视角，事实上有多种关于扩散模型的观点，可以都去了解一下。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;随机微分方程（SDE）、得分匹配（Score Matching）、朗之万动力学（Langevin Dynamics）、变分推断视角（Variational Inference）……&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我们常说的机器学习，或者更准确一些，&lt;strong&gt;监督学习&lt;/strong&gt;中，我们做的是“&lt;strong&gt;判别&lt;/strong&gt;”：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;输入：一张猫的图片&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;输出：标签”cat“&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本质：学习 p(y|x) （给定图片，预测类别）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而扩散模型做的是”&lt;strong&gt;生成&lt;/strong&gt;“，可以理解为与监督学习相反的问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;输入：随机噪声&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;输出：一张猫的图片&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本质：学习 p(x) （数据本身的分布）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下面，让我们详细看看扩散模型是如何完成它的工作的：&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://clarkflybee.github.io/posts/2026-02-06-transformer-dit-primer/DDPM.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;前向过程数据--噪声&#34;&gt;前向过程：数据 → 噪声&lt;/h3&gt;
&lt;p&gt;我们定义一个固定的、不需要学习的&lt;strong&gt;前向过程&lt;/strong&gt;（&lt;em&gt;&lt;strong&gt;Forward Process&lt;/strong&gt;&lt;/em&gt;），把真实图像 $x_0$ 逐步变成纯噪声 $x_T$ 。&lt;/p&gt;
&lt;blockquote&gt;
&lt;h4 id=&#34;为什么要做这个&#34;&gt;&lt;em&gt;&lt;strong&gt;为什么要做这个？&lt;/strong&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p&gt;我们在 前向过程 中人为构造一条从&lt;strong&gt;数据到噪声&lt;/strong&gt;的渐进式退化路径。&lt;/p&gt;
&lt;p&gt;扩散模型可以理解为一个&lt;strong&gt;去噪网络&lt;/strong&gt;，它的工作流程就是对着一张图片（初始是随机噪声），一步一步去掉噪声，最后得到我们要生成的目标图片。&lt;/p&gt;
&lt;p&gt;那么，我们现在手上有原始图片，我们希望模型学会如何去噪，需要从这一张图片构造出足够多的&lt;strong&gt;训练数据&lt;/strong&gt;供扩散模型学习。&lt;/p&gt;
&lt;p&gt;我们把原始图片一步步加噪，得到一系列图片（每个图片即对应一个时间步 $t$ ），每个图片都比前一张有更多噪声，直到最后成为纯噪声。&lt;/p&gt;
&lt;p&gt;然后我们把这一系列图片反过来看，就是一个从纯噪声一步步变成目标图片的过程，这就是扩散模型需要的&lt;strong&gt;训练数据&lt;/strong&gt;。它会从这一系列数据中&lt;strong&gt;学会&lt;/strong&gt;去噪的技巧，最后能够按需求生成图片。&lt;/p&gt;
&lt;p&gt;总而言之，这就是前向过程可以理解为&lt;mark&gt;&lt;strong&gt;训练数据的构造方式&lt;/strong&gt;&lt;/mark&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这个数据到噪声的过程是一步步进行的。我们看到其中一步：&lt;/p&gt;
&lt;h4 id=&#34;单步转移&#34;&gt;单步转移&lt;/h4&gt;
&lt;p&gt;从第 $t-1$ 步到 第 $t$ 步，我们做的就是依赖当前状态，加一点点高斯噪声：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
