也許過去十年在計算機視覺和機器學習方面的突破是GANs(生成式對抗網絡)的發(fā)明——這種方法引入了超越數(shù)據(jù)中已經存在的內容的可能性,是一個全新領域的敲門磚,現(xiàn)在稱為生成式建模。然而,在經歷了一個蓬勃發(fā)展的階段后,GANs開始面臨平臺期,其中大多數(shù)方法都在努力解決對抗性方法面臨的一些瓶頸。這不是單個方法的問題,而是問題本身的對抗性。GANs的一些主要瓶頸是:
圖像生成缺乏多樣性
模式崩潰
多模態(tài)分布問題學習
訓練時間過長
由于問題表述的對抗性,不容易訓練
還有另一系列基于似然的方法(例如,馬爾可夫隨機場),它已經存在了相當長的一段時間,但由于對每個問題的實現(xiàn)和制定都很復雜,因此未能獲得重大影響。其中一種方法是“擴散模型”——一種從氣體擴散的物理過程中獲得靈感的方法,并試圖在多個科學領域對同一現(xiàn)象進行建模。然而,在圖像生成領域,它們的應用最近變得越來越明顯。主要是因為我們現(xiàn)在有更多的計算能力來測試復雜的算法,這些算法在過去是不可實現(xiàn)的。
一個標準擴散模型有兩個主要的過程域:正向擴散和反向擴散。在前向擴散階段,圖像被逐漸引入的噪聲污染,直到圖像成為完全隨機噪聲。在反向過程中,利用一系列馬爾可夫鏈在每個時間步逐步去除預測噪聲,從而從高斯噪聲中恢復數(shù)據(jù)。
擴散模型最近在圖像生成任務中表現(xiàn)出了顯著的性能,并在圖像合成等任務上取代了GANs的性能。這些模型還能夠產生更多樣化的圖像,并被證明不會受到模式崩潰的影響。這是由于擴散模型保留數(shù)據(jù)語義結構的能力。然而,這些模型的計算要求很高,訓練需要非常大的內存,這使得大多數(shù)研究人員甚至無法嘗試這種方法。這是因為所有的馬爾可夫狀態(tài)都需要一直在內存中進行預測,這意味著大型深度網絡的多個實例一直在內存中。此外,這些方法的訓練時間也變得太高(例如,幾天到幾個月),因為這些模型往往陷入圖像數(shù)據(jù)中細粒度的、難以察覺的復雜性。然而,需要注意的是,這種細粒度圖像生成也是擴散模型的主要優(yōu)勢之一,因此,使用它們是一種矛盾。
另一個來自NLP領域的非常著名的方法系列是transformer。他們在語言建模和構建對話AI工具方面非常成功。在視覺應用中,transformer表現(xiàn)出泛化和自適應的優(yōu)勢,使其適合通用學習。它們比其他技術更好地捕捉文本甚至圖像中的語義結構。然而,與其他方法相比,transformer需要大量的數(shù)據(jù),并且在許多視覺領域也面臨著性能方面的平臺。
潛在擴散模型
一種最近提出的方法,利用GANs的感知能力、擴散模型的細節(jié)保持能力和transformer的語義能力,將三者合并在一起。該技術被作者稱為“潛在擴散模型”(LDM)。LDM已經證明自己比前面提到的所有模型都更健壯和高效。與其他方法相比,它們不僅節(jié)省了內存,還產生了多樣化的、高度詳細的圖像,保留了數(shù)據(jù)的語義結構。簡而言之,LDM是潛空間而不是像素空間中擴散過程的應用,同時結合了來自transformer的語義反饋。
任何生成式學習方法都有兩個主要階段:感知壓縮和語義壓縮。
壓縮感知
在感知壓縮學習階段,學習方法必須通過去除高頻細節(jié)將數(shù)據(jù)封裝為抽象表示。這一步對于構建環(huán)境的不變和魯棒表示是必要的。GANs擅長提供這種感知壓縮。他們通過將高維冗余數(shù)據(jù)從像素空間投影到稱為潛空間的超空間來實現(xiàn)這一點。隱空間中的隱向量是原始像素圖像的壓縮形式,可以有效地代替原始圖像。
更具體地說,自動編碼器(AE)結構是捕獲感知壓縮的結構。AE中的編碼器將高維數(shù)據(jù)投影到潛空間,解碼器從潛空間恢復圖像。
語義壓縮
在學習的第二個階段,圖像生成方法必須能夠捕捉數(shù)據(jù)中存在的語義結構。這種概念和語義結構保存了圖像中各種物體的上下文和相互關系。transformer擅長捕捉文本和圖像中的語義結構。transformer的泛化能力和擴散模型的細節(jié)保持能力的結合提供了兩個世界的優(yōu)點,并提供了一種生成細粒度的高度詳細圖像的能力,同時保留圖像中的語義結構。
感知損失
LDM中的自動編碼器通過將數(shù)據(jù)投影到潛空間來捕捉數(shù)據(jù)的感知結構。作者使用一種特殊的損失函數(shù)來訓練這種自編碼器,稱為“感知損失”。該損失函數(shù)確保重建被限制在圖像流形內,并減少使用像素空間損失(例如L1/L2損失)時可能出現(xiàn)的模糊。
擴散損失
擴散模型通過逐步去除正態(tài)分布變量中的噪聲來學習數(shù)據(jù)分布。換句話說,DMs采用長度為T的反向馬爾可夫鏈。這也意味著DMs可以建模為時間步長T =1,…,T的一系列T去噪自編碼器。這由下式中的εθ表示。請注意,損失函數(shù)依賴于隱向量而不是像素空間。
條件擴散
擴散模型是一種依賴先驗的條件模型。在圖像生成任務中,先驗通常是文本、圖像或語義圖。為了獲得這種情況的潛在表示,使用了一個transformer(例如CLIP),它將文本/圖像嵌入到潛在向量` τ `中。因此,最終的損失函數(shù)不僅取決于原始圖像的潛空間,而且還取決于條件的潛嵌入。
注意機制
LDM的骨干是U-Net自編碼器,具有稀疏連接,提供交叉注意力機制[6]。Transformer網絡將條件文本/圖像編碼為潛在嵌入,然后通過交叉注意力層映射到U-Net的中間層。這個交叉注意力層實現(xiàn)了注意力(Q,K,V) = softmax(QKT/✔)V,而Q,K和V是可學習的投影矩陣。
文本到圖像合成
我們使用python中LDM v4的最新官方實現(xiàn)來生成圖像。在文本到圖像合成中,LDM使用預訓練的CLIP模型[7],該模型為文本和圖像等多種模態(tài)提供了基于transformer的通用嵌入。然后,transformer模型的輸出被輸入到LDM的python API ` diffusers `。有一些參數(shù)也是可以調整的(例如,沒有。擴散步驟、種子、圖像大小等)。擴散損失
圖像到圖像合成
同樣的設置也適用于圖像到圖像的合成但是,需要輸入樣本圖像作為參考圖像。生成的圖像在語義和視覺上與作為參考的圖像相似。這個過程在概念上類似于基于風格的GAN模型,然而,它在保留圖像的語義結構方面做得更好。
結論
我們已經介紹了圖像生成領域的最新發(fā)展,稱為潛擴散模型。ldm在以精細細節(jié)生成不同背景的高分辨率圖像方面是魯棒的,同時還保留了圖像的語義結構。因此,LDM是圖像生成特別是深度學習方面的一個進步。如果您仍然想知道“穩(wěn)定擴散模型”,那么這只是應用于高分辨率圖像的LDM的重新命名,同時使用CLIP作為文本編碼器。