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