炒股就看金麒麟分析師研報,權威,專業,及時,全面,助您挖掘潛力主題機會!
(來源:機器之心Pro)
本文作者楊磊,目前在大模型初創公司階躍星辰擔任後訓練算法工程師,其研究領域包括生成模型和語言模型後訓練。在這之前,他曾在曠視科技擔任了六年的計算機視覺算法工程師,從事三維視覺、數據合成等方向。他於 2018 年本科畢業於北京化工大學。
當前,主流的基礎生成模型大概有五大類,分別是 :Energy-Based Models (Diffusion)、GAN、Autoregressive、VAE 和 Flow-Based Models。
本項工作提出了一種全新的生成模型:離散分佈網絡(Discrete Distribution Networks),簡稱 DDN。相關論文已發表於 ICLR 2025。
DDN 採用一種簡潔且獨特的機制來建模目標分佈:
1.在單次前向傳播中,DDN 會同時生成 K 個輸出(而非單一輸出)。
2.這些輸出共同構成一個包含 K 個等權重(概率均爲 1/K)樣本點的離散分佈,這也是“離散分佈網絡”名稱的由來。
3.訓練目標是通過優化樣本點的位置,使網絡輸出的離散分佈儘可能逼近訓練數據的真實分佈。
每一類生成模型都有其獨特的性質,DDN 也不例外。本文將重點介紹 DDN 的三個特性:
離散分佈網絡原理
首先,藉助上圖所示的 DDN 重建流程作爲切入點來一窺其原理。與 diffusion 和 GAN 不同,它們無法重建數據,DDN 能像 VAE 一樣具有數據重建能力:先將數據映射爲 latent ,再由 latent 生成與原始圖像高度相似的重建圖像。
上圖展示了 DDN 重建 target 並獲得其 latent 的過程。一般 DDN 內部包含多個層級結構,其層數爲 L,示意圖裏 L=3。但先讓我們把目光集中在最左側的第一層。
離散分佈:正如上文所言,DDN 的核心思想在於讓網絡同時生成 K 個輸出,從而表示“網絡輸出了一個離散分佈”。因此每一層 DDN 都有 K 個 outputs,即一次性輸出 K 張不同的圖像,示意圖中 K=3。每個 output 都代表了這個離散分佈中的一個樣本點,每個樣本點的概率質量相等,均爲 1/K。
層次化生成:最終目標是讓這個離散分佈 (K 個 outputs),和目標分佈(訓練集)越接近越好,顯然,單靠第一層的 K 個 outputs 無法清晰地刻畫整個 MNIST 數據集。第一層獲得的 K 張圖像更像是將 MNIST 聚爲 K 類後得到的平均圖像。因此,我們引入“層次化生成”設計以獲得更加清晰的圖像。
接着,從第二層的 outputs 中繼續選擇出和 target 最相似的一張作爲第三層的 condition,並重覆上述過程。隨着層數增加,生成的圖像和 target 會越來越相似,最終完成對 target 的重建。
Latent:這一路選下來,每一層被選中 output 的 index 就組成了 target 的 latent(圖中綠色部分“3-1-2”)。因此 latent 是一個長度爲 L, 取值範圍 [1,K] 的整數數組。
網絡結構
將“重建過程示意圖”進一步細化,就有下圖 (a) 的網絡結構圖:
在圖 (a) 中,把生成相關的設計整合爲 Discrete Distribution Layer (DDL), 把僅提供基礎計算的模塊封裝爲了 NN Block,並重點展示訓練時 DDL 內部的數據流。主要關注以下幾點:
右側的 (b)、 (c) 兩圖分別展示了 DDN 支持的兩種網絡結構形式:
出於計算效率考慮,DDN 默認採用具有 coarse-to-fine 特性的 single shot generator 形式。
損失函數
此外,本文還提出了 Split-and-Prune 優化算法來使得訓練時每個節點被 GT 匹配上的概率均勻,都是 1/K。
下圖展示了 DDN 做二維概率密度估計的優化過程:
左:生成樣本集;右:概率密度GT
實驗與特性展示
隨機採樣效果展示
在人臉數據集上的隨機採樣效果
更通用的零樣本條件生成
先描述一下“零樣本條件生成”(Zero-Shot Conditional Generation, ZSCG)這個任務:
用 Unconditional DDN 做零樣本條件生成效果:DDN 能在不需要梯度的情況下,使不同模態的 Condition (比如 text prompt 加 CLIP) 來引導 Unconditional trained DDN 做條件生成。黃色框圈起來部分就是用於參考的 GT。SR 代表超分辨率、ST 代表 Style Transfer。
如上圖所示,DDN 支持豐富的零樣本條件生成任務,其做法和圖 1 中的 DDN 重建過程幾乎一樣。
具體而言,只需把圖 1 中的 target 替換爲對應的 condition,並且,把採樣邏輯調整爲從每一層的多個 outputs 中選出最符合當前 condition 的那一個 output 作爲當前層的輸出。這樣隨着層數的增加,生成的 output 越來越符合 condition。整個過程中不需要計算任何梯度,僅靠一個黑盒判別模型就能引導網絡做零樣本條件生成。DDN 是第一個支持如此特性的生成模型。
換爲更專業的術語描述便是:
> DDN 是首個支持用純粹判別模型引導採樣過程的生成模型;
> 某種意義上促進了生成模型和判別模型的大一統。
這也意味着用戶能夠通過 DDN 高效地對整個分佈空間進行篩選和操作。這個性質非常有趣,可玩性很高,個人感覺“零樣本條件生成”將會得到廣泛的應用。
Conditional Training
訓練 conditional DDN 非常簡單,只需要把 condition 或者 condition 的特徵直接輸入網絡中,網絡便自動學會了 P (X|Y)。
此外,conditional DDN 也可以和 ZSCG 結合以增強生成過程的可控性,下圖的第四 / 五列就展示了以其它圖像爲 ZSCG 引導的情況下 conditional DDN 的生成效果。
Conditional-DDNs 做上色和邊緣轉 RGB 任務。第四、五列展示了以其它圖像爲引導的情況下,零樣本條件生成的效果,生成的圖像會在保證符合 condition 的情況下儘可能靠近 guided 圖像的色調。
端到端可微分
DDN 生成的樣本對產生該樣本的計算圖完全可微,使用標準鏈式法則就能對所有參數做端到端優化。這種梯度全鏈路暢通的性質,體現在了兩個方面:
1.DDN 有個一脈相承的主幹 feature,梯度能沿着主幹 feature 高效反傳。而 diffusion 在傳遞梯度時,需多次將梯度轉換到帶噪聲的樣本空間進行反傳。
2.DDN 的採樣過程不會阻斷梯度,意味着網絡中間生成的 outputs 也是完全可微的,不需要近似操作,也不會引入噪聲。
理論上,在利用判別模型做 fine-tuning 的場景或着強化學習任務中,使用 DDN 作爲生成模型能更高效地 fine-tuning。
獨特的一維離散 latent
DDN 天然具有一維的離散 latent。由於每一層 outputs 都 condition on 前面所有的 results,所以其 latent space 是一個樹狀結構。樹的度爲 K,層數爲 L,每一個葉子節點都對應一個 DDN 的採樣結果。
Latent 可視化
爲了可視化 latent 的結構,我們在 MNIST 上訓練了一個 output level 層數 L=3,每一層 output nodes 數目 K=8 的 DDN,並以遞歸九宮格的形式來展示其 latent 的樹形結構。九宮格的中心格子就是 condition,即上一層被採樣到的 output,相鄰的 8 個格子都代表基於中心格子爲 condition 生成的 8 個新 outputs。
Hierarchical Generation Visualization of DDN
未來可能的研究方向
免責聲明:投資有風險,本文並非投資建議,以上內容不應被視為任何金融產品的購買或出售要約、建議或邀請,作者或其他用戶的任何相關討論、評論或帖子也不應被視為此類內容。本文僅供一般參考,不考慮您的個人投資目標、財務狀況或需求。TTM對信息的準確性和完整性不承擔任何責任或保證,投資者應自行研究並在投資前尋求專業建議。