社群計算機視覺課程文件
擴散模型簡介
並獲得增強的文件體驗
開始使用
擴散模型簡介
本章你將學到什麼
- 什麼是擴散模型,它們與 GAN 有何不同
- 擴散模型的主要子類別
- 擴散模型的用例
- 擴散模型的缺點
擴散模型及其與 GAN 的區別
擴散模型是計算機視覺領域一個令人興奮的新興方向,在影像生成方面表現出令人印象深刻的成果。這些生成模型分兩個階段工作,即前向擴散階段和反向擴散階段:首先,它們透過新增一些噪聲輕微改變輸入資料,然後嘗試撤銷這些改變以恢復原始資料。這種先改變後撤銷的過程有助於生成逼真的影像。
這些生成模型將生成建模領域提升到了一個新的水平,特別是像 Imagen 和 潛在擴散模型(LDM) 這樣的模型。例如,請看下面透過這些模型生成的影像。

在擴散模型最近興起之前,GAN 被許多人認為是生成樣本質量方面的最先進生成模型。GAN 也因其對抗性目標而難以訓練,並且經常遭受模式崩潰。將不同的模式視為不同的類別。假設貓和狗是兩個獨立的模式。如果生成器的任務是生成貓和狗的影像,如果發生模式崩潰,則意味著生成器只生成可信的貓或狗影像。發生這種情況的一個原因是判別器未能從區域性最小值中移出,最終重複地只將其中一種模式(貓或狗)分類為假。相比之下,擴散模型具有穩定的訓練過程,並提供更大的多樣性,因為它們是基於似然的。
然而,與 GAN 相比,擴散模型往往計算密集,並且由於其逐步的反向過程,需要更長的推理時間。
在科學中,擴散是指溶質顆粒在溶劑中從溶質濃度較高的區域向溶質濃度較低的區域移動的過程。請看下面的擴散類比以獲得高層次的直覺。

上圖是傳統的擴散過程,一滴墨水滴入一杯清水中,一段時間後完全融合。實際上,逆轉這個過程是不可能的,即從混合物中取出墨滴。但這正是擴散模型所做的,即去除噪聲,從而產生一張乾淨的影像。
在擴散模型中,高斯噪聲被一步步新增到訓練影像中,直到它們完全變成垃圾噪聲影像。透過這個過程,模型學會了逐步去除噪聲,因此它能夠將任何高斯噪聲影像變成一張新的多樣化影像(也可以根據文字提示進行條件生成)。

擴散模型的主要變體
擴散模型有 3 個主要框架
- 去噪擴散機率模型 (DDPM)
- DDPM 是使用潛在變數來估計機率分佈的模型。從這個角度來看,DDPM 可以看作是一種特殊型別的變分自編碼器 (VAE),其中前向擴散階段對應於 VAE 內部的編碼過程,而反向擴散階段對應於解碼過程。
- 噪聲條件分數網路 (NCSN)
- 它基於透過分數匹配訓練共享神經網路,以估計不同噪聲水平下擾動資料分佈的得分函式(定義為對數密度梯度)。
- 隨機微分方程 (SDE)
- 它代表了一種替代的擴散建模方式,構成了擴散模型的第三個子類別。透過前向和反向 SDE 建模擴散可以實現高效的生成策略以及強大的理論結果。這可以看作是對 DDPM 和 NCSN 的泛化。

擴散模型的用例
擴散模型用於各種任務,包括但不限於:
- 影像生成 - 基於提示生成影像。
- 影像超解析度 - 提高影像解析度。
- 影像修復 - 根據提示填充影像的損壞部分。
- 影像編輯 - 編輯影像的特定/整個部分而不失去其視覺特性。
- 影像到影像轉換 - 這包括更改背景、位置屬性等。
- 從擴散模型中學習到的潛在表示也可以用於:
- 影像分割
- 分類
- 異常檢測
想玩轉擴散模型?不用擔心,Hugging Face 的 Diffusers 庫可以幫你。你可以使用幾乎所有最新的擴散 SOTA 模型來完成幾乎任何任務。
擴散模型的缺點
擴散模型最顯著的缺點仍然是在推理時需要執行多個步驟才能生成一個樣本。潛在一致性模型(LCM)是為克服潛在擴散模型(LDM)緩慢的迭代取樣過程而提出的一種研究方向,它可以在任何預訓練的 LDM(例如 Stable Diffusion)上實現少量步驟的快速推理。儘管在這個方向上進行了大量的研究,但 GAN 在生成影像方面仍然更快。
擴散模型的其他問題可能與文字到影像生成中常用的 CLIP 嵌入策略有關。一些文獻研究強調,他們的模型難以在影像中呈現可讀文字,並將其行為歸因於 CLIP 嵌入不包含拼寫資訊。
< > 在 GitHub 上更新