機器學習2021 — Diffusion Model 介紹文章

機器學習2021 — Diffusion Model 介紹文章

機器學習2023 — Diffusion Model 介紹文章

Diffusion Model(擴散模型)是當前頂尖生成式 AI 領域中,特別是在影像生成方面,最常用且效果最好的模型之一。其運作機制基於一個相對直觀的概念,但背後的數學推導則較為複雜。

一、 擴散模型的核心概念

Diffusion Model 的核心概念包含兩個相互對立的過程:前向過程(Forward Process,加噪)和反向過程(Reverse Process,去噪)。

  1. 前向過程(Forward Process):加噪

前向過程的目標是逐步將雜訊(noise)加到原始的乾淨圖像(通常以 x0​ 表示)中。這個過程會持續進行,直到圖像看起來完全都是雜訊,無法辨認出原始圖像為何。

• 訓練步驟(DDPM 實際操作):儘管概念上雜訊是逐步加入的,但 DDPN(Denoising Diffusion Probabilistic Models)的實際訓練算法採用一步到位的方式加噪。

• 在訓練時,模型會先從資料庫中抽取出乾淨圖像 x0​。

• 同時,模型會從一個均值為 0、方差(variance)為 1 的常態分佈(normal distribution)中採樣出一個純雜訊 ϵ。

• 這張 x0​ 會與雜訊 ϵ 根據一個預先設定好的比例混合,得到一張有雜訊的圖像 xt​。

• 這個比例由一個採樣出來的整數 t(從 1 到 T,如 1000)決定。t 越大,代表雜訊 ϵ 佔的比例越多,加噪的程度也越「凶狠」。

• 在 Diffusion Model 的文獻中,加噪的過程 Q(Forward Process)是人為設計好的,不需要學習。

  1. 反向過程(Reverse Process):去噪與生成

反向過程即是去噪(denoise)的過程。

• 生成開始:模型從一張純粹都是雜訊的圖片(xT​)開始。

• 圖像浮現:透過反覆的去噪操作,每次去噪都會讓圖像浮現一點點出來。

• 去噪模型:核心組件是雜訊預測器(Noise Predictor,通常表示為 ϵθ​ 或一個 neural network)。

◦ 在訓練階段,雜訊預測器的輸入是有雜訊的圖像 xt​ 和步驟 t。

◦ 它的學習目標是預測當初混入乾淨圖像 x0​ 的原始雜訊 ϵ。

• 圖像生成/採樣 (Sampling):

◦ 模型從 xT​ 開始,重複 T 次迭代,目標是從 xt​ 生成 xt−1​。

◦ 在生成過程中,去噪模組會輸出一個結果,但這還不是最終的 xt−1​。

◦ 在實際的採樣(sample)過程中,一個令人匪夷所思的操作是,模型除了減去預測的雜訊外,還會再採樣一次雜訊(z)並將其加到圖像中。

◦ 這額外加入的雜訊 σt​ 是必要的,因為它為模型帶來了隨機性,能避免如同在語言模型中僅選擇機率最大的輸出時,可能出現的「跳針」或重複的無聊結果。

二、 訓練目標與 VAE 的關聯

Diffusion Model 的訓練目標,如同大多數影像生成模型一樣,是追求 Maximum Likelihood Estimation(最大似然估計)。

• 等價於最小化 KL 散度:最大似然估計在數學上等價於讓模型生成的圖像分佈 pθ​ 與真實數據分佈 pdata​ 之間的 KL 散度(KL divergence)最小化。KL 散度是衡量兩個分佈之間差異程度的方法,越小代表分佈越接近。

• Lower Bound:由於直接計算 pθ​(x) 複雜,Diffusion Model 實際上是最大化對數機率的一個 Lower Bound(下界)。

• 與 VAE 的相似性:Diffusion Model 在形式上與 VAE(Variational Autoencoder)極為相似。

◦ 加噪的 Q 過程(Forward Process)在 VAE 中相當於 Encoder。

◦ 去噪的 P 過程(Reverse Process)在 VAE 中相當於 Decoder。

◦ Diffusion Model 的 Lower Bound 推導過程與 VAE 也是完全一樣的,只是符號的替換。

三、 擴散模型在文生圖框架中的應用

當前最優秀的文生圖模型(如 Stable Diffusion 或 Imagen)採用一個複合式框架,Diffusion Model 只是其中的一個生成元件。

• 整體架構:這類模型通常由三個主要元件構成:

  1. 文字編碼器(Text Encoder):將輸入的文字敘述轉化成一組向量(embedding)。

  2. 生成模型(Generation Model):通常是 Diffusion Model,它接收雜訊和文字編碼器輸出的向量。

  3. 解碼器(Decoder):將生成模型產生的中間產物還原成最終的原始圖片。

• 潛在空間擴散(Latent Diffusion):在 Stable Diffusion 等模型中,Diffusion Model 並非直接在像素級別的圖片上操作。

◦ 它是在圖片被壓縮後的潛在表示(Latent Representation)或中間產物上進行加噪和去噪。

◦ 流程是:先用一個 Encoder 將原始圖片壓縮成 Latent Representation。然後,雜訊被加到這個 Latent Representation 上。

◦ Diffusion Model 在這個 Latent Representation 上進行去噪,最終由 Decoder 將這個去噪後的潛在表示還原成清晰的圖片。

◦ 這種做法可以看作是將傳統 DDPM 的 2D 圖片輸入替換成了潛在表示,但其訓練和採樣流程與傳統 DDPM 相同。

比喻:

您可以將 Diffusion Model 想像成一個古董修復師。

前向過程 (加噪) 就像是將一件完整的古董(x0​)不斷地用沙子和灰塵(雜訊 ϵ)覆蓋,直到它變成一團完全看不清的泥土狀物(xT​)。在訓練時,我們讓修復師看一眼完整的古董,然後立刻看覆蓋了 t 層沙子的泥土狀物,並告訴修復師:你需要學會辨識這 t 層沙子(原始雜訊 ϵ)。

反向過程 (去噪) 就像是從那團泥土狀物(xT​)開始,修復師利用他學到的知識,逐步將沙子抹去。每抹去一點(一個去噪步驟),古董的輪廓就更清晰一些。最終,當所有的沙子都被去除(或者去除到 x0​ 階段),完整的古董就被生成出來了。

資料來源:

  • 李宏毅老師 【生成式AI】Diffusion Model 原理剖析 [1][2][3][4]
  • 自動生成影片可參考 https://youtu.be/Szk4hfu4K04

Comments

Loading comments…

Leave a Comment