Aditya Ramesh講DALL·E 2基本原理 原創(chuàng)
DALL·E 2是由Aditya Ramesh和OpenAI的合著者們開發(fā)的一種文本到圖像生成系統(tǒng)。當(dāng)系統(tǒng)接收到一個(gè)標(biāo)題時(shí),它會(huì)嘗試從頭開始生成一幅與之匹配的新穎圖像。它還具備以下額外功能:
- 修復(fù):使用語(yǔ)言對(duì)圖像進(jìn)行編輯;
- 變異(圖1):生成新圖像,這些圖像與給定參考圖像具有相同的本質(zhì),但在細(xì)節(jié)的組合方式上有所不同;
- 文本差異(圖4):使用語(yǔ)言轉(zhuǎn)換圖像的任何方面。
圖1:雷·潘在黑板涂鴉上的DALL·E 2變異。中間是原始涂鴉,周圍顯示生成的變異。
DALL·E 2的工作原理是基于兩種關(guān)鍵技術(shù):CLIP和擴(kuò)散。CLIP是一種模型,通過自然語(yǔ)言監(jiān)督有效地學(xué)習(xí)視覺概念。它由文本編碼器和圖像編碼器組成,通過在大量不同的圖像-文本對(duì)上進(jìn)行訓(xùn)練,將輸入映射到共享的概念空間。訓(xùn)練過程中,CLIP接收一組圖像列表和相應(yīng)的描述,形成匹配對(duì)和不匹配對(duì)。編碼器的訓(xùn)練目標(biāo)是將匹配對(duì)映射到相近的點(diǎn),將不匹配對(duì)映射到較遠(yuǎn)的點(diǎn)。這樣的訓(xùn)練目標(biāo)鼓勵(lì)CLIP學(xué)習(xí)關(guān)于圖像的各種特征,比如對(duì)象、風(fēng)格、顏色等。
擴(kuò)散模型用于生成新圖像。它是一種通過逐步撤銷一系列固定程度的損壞步驟來逐漸完善生成圖像的技術(shù)。擴(kuò)散模型允許生成具有廣泛視覺概念的高質(zhì)量圖像。
總之,DALL·E 2將CLIP學(xué)習(xí)從文本中獲取視覺概念的能力與擴(kuò)散模型生成多樣化且高質(zhì)量圖像的能力相結(jié)合。
DALL·E 2的基礎(chǔ)系統(tǒng)稱為unCLIP,它基于兩項(xiàng)關(guān)鍵技術(shù):CLIP和擴(kuò)散。正如博客中所述,CLIP是一種“通過自然語(yǔ)言監(jiān)督有效地學(xué)習(xí)視覺概念”的模型。擴(kuò)散是一種通過學(xué)習(xí)逆轉(zhuǎn)一系列固定損壞步驟的生成模型的技術(shù)。接下來講簡(jiǎn)要描述這兩種技術(shù)。
圖2:對(duì)CLIP的對(duì)比訓(xùn)練目標(biāo)進(jìn)行說明。在每個(gè)訓(xùn)練步驟中,CLIP接收到N=32,786個(gè)圖像及其對(duì)應(yīng)的標(biāo)題。從中,形成了N個(gè)匹配的圖像-標(biāo)題對(duì)(對(duì)應(yīng)于圖示中矩陣的對(duì)角元素),以及N(N?1)個(gè)不匹配的標(biāo)題和圖像對(duì)(對(duì)應(yīng)于圖示中非對(duì)角元素)。
CLIP由兩個(gè)神經(jīng)網(wǎng)絡(luò)組成——文本編碼器和圖像編碼器,它們?cè)诖罅慷鄻踊膱D像-文本對(duì)上進(jìn)行訓(xùn)練。每個(gè)編碼器將其輸入映射到一個(gè)球體上的一個(gè)點(diǎn)(稱為嵌入),該球體作為兩種模態(tài)共享的“概念空間”。在每個(gè)訓(xùn)練步驟中,CLIP接收到一組圖像和相應(yīng)的描述它們的標(biāo)題。利用這些數(shù)據(jù),可以形成兩種類型的圖像-文本對(duì):匹配對(duì),其中圖像與其對(duì)應(yīng)的標(biāo)題配對(duì),以及不匹配對(duì),其中圖像與任何其他標(biāo)題配對(duì)。編碼器被訓(xùn)練以將匹配對(duì)映射到球體上的相鄰點(diǎn),而將不匹配對(duì)映射到較遠(yuǎn)的點(diǎn)。
這個(gè)簡(jiǎn)單的訓(xùn)練目標(biāo)在機(jī)器學(xué)習(xí)中被稱為“對(duì)比訓(xùn)練”。它鼓勵(lì)CLIP學(xué)習(xí)關(guān)于人們?cè)诰W(wǎng)上可能寫的圖像的所有特征。這些特征包括物體的存在、審美風(fēng)格、使用的顏色和材料等。相比之下,CLIP通常不被激勵(lì)去保留關(guān)于物體的相對(duì)位置或哪些屬性適用于哪些物體的信息。因此,CLIP很難區(qū)分一個(gè)紅色立方體放在藍(lán)色立方體上的圖像與兩個(gè)物體位置交換的另一個(gè)圖像。原因在于CLIP訓(xùn)練目標(biāo)的性質(zhì):CLIP只被激勵(lì)學(xué)習(xí)圖像的特征,以使其能夠與正確的標(biāo)題(而不是列表中的其他標(biāo)題)匹配。除非它收到一個(gè)反例(即提到藍(lán)色立方體放在紅色立方體上的標(biāo)題),否則CLIP不會(huì)學(xué)習(xí)保留關(guān)于物體相對(duì)位置的信息。
擴(kuò)散模型通過學(xué)習(xí)逆轉(zhuǎn)一系列固定損壞步驟來訓(xùn)練。損壞過程的每個(gè)步驟向圖像中添加一小部分噪音(具體來說是高斯噪音),從而擦除其中的一些信息。經(jīng)過最后一步,圖像變得與純?cè)胍魺o(wú)法區(qū)分。擴(kuò)散模型經(jīng)過訓(xùn)練以逆轉(zhuǎn)這個(gè)過程,并通過這樣做學(xué)會(huì)在每個(gè)步驟中重新生成可能被擦除的內(nèi)容。為了從頭開始生成圖像,從純?cè)胍糸_始,并假設(shè)它是應(yīng)用于真實(shí)圖像的損壞過程的最終結(jié)果。然后,重復(fù)應(yīng)用模型來逆轉(zhuǎn)這個(gè)假設(shè)的損壞過程的每一步。這逐漸使圖像變得越來越真實(shí),最終生成一個(gè)原始、無(wú)噪音的圖像。
DALL·E 2以兩個(gè)階段的過程生成圖像,首先生成圖像的“概要”,然后填充剩余的細(xì)節(jié)以獲得逼真的圖像。在第一階段,稱為prior的模型從給定的標(biāo)題生成CLIP圖像嵌入(用于描述圖像的“概要”)。有人可能會(huì)問為什么需要這個(gè)prior模型:既然CLIP文本編碼器訓(xùn)練得到的輸出與圖像編碼器相匹配,為什么不使用文本編碼器的輸出作為圖像的“概要”?答案是一個(gè)給定標(biāo)題可能與無(wú)數(shù)個(gè)圖像一致,因此這兩個(gè)編碼器的輸出不會(huì)完全一致。因此,需要一個(gè)單獨(dú)的prior模型來“翻譯”文本嵌入,使其能夠與之相匹配的圖像嵌入。在第二階段稱為unCLIP的擴(kuò)散模型從這個(gè)嵌入中生成圖像本身。在訓(xùn)練的每個(gè)步驟中,unCLIP接收到待重構(gòu)的圖像的損壞版本,以及干凈圖像的CLIP圖像嵌入。這個(gè)模型被稱為unCLIP,因?yàn)樗行У啬孓D(zhuǎn)了CLIP圖像編碼器所學(xué)到的映射。由于unCLIP訓(xùn)練以“填充細(xì)節(jié)”以產(chǎn)生逼真圖像的方式,它將學(xué)會(huì)建模所有CLIP認(rèn)為與其訓(xùn)練目標(biāo)無(wú)關(guān)且因此丟棄的信息。
圖3:Alex Nichol創(chuàng)建的用于生成具有擴(kuò)散模型的新圖像的過程的示意圖。
有幾個(gè)原因使得使用這種兩階段采樣過程具有優(yōu)勢(shì),在這里討論其中的兩個(gè)。論文進(jìn)一步討論了兩階段采樣過程的其他優(yōu)點(diǎn)。首先可以優(yōu)先模擬使圖像對(duì)人類有意義的高級(jí)語(yǔ)義,而不是其他細(xì)節(jié)。圖像包含了大量信息,其中大部分用于描述細(xì)微的、難以察覺的細(xì)節(jié)。只有其中相對(duì)較少的一部分信息對(duì)于使圖像在視覺上連貫且有意義至關(guān)重要,而CLIP圖像嵌入捕捉了其中很多信息。直接在CLIP圖像嵌入上訓(xùn)練模型能夠首先專注于模擬這些顯著特征,然后再在第二階段填充細(xì)節(jié),以合成逼真的圖像。
圖4:使用文本差異動(dòng)畫將維多利亞式房屋轉(zhuǎn)變?yōu)楝F(xiàn)代房屋。轉(zhuǎn)變由標(biāo)題“維多利亞式房屋”和“現(xiàn)代房屋”決定,前者描述了房屋的建筑風(fēng)格,后者描述了房屋的建筑風(fēng)格應(yīng)如何改變。
第二個(gè)原因是CLIP的多模態(tài)嵌入空間能夠使用一種稱為文本差異的技術(shù)對(duì)圖像應(yīng)用“前后”轉(zhuǎn)換。在2013年,word2vec展示了可以獲得一個(gè)對(duì)文本進(jìn)行向量計(jì)算可解釋的“概念空間”。例如,word2vec將詞語(yǔ)“queen”映射到與計(jì)算“woman” + “king” - “man”結(jié)果接近的位置,這使得可以完成類似于標(biāo)準(zhǔn)化測(cè)試中遇到的類比問題。CLIP進(jìn)一步擴(kuò)展了這一點(diǎn),允許在文本和圖像上進(jìn)行算術(shù)運(yùn)算,例如
(維多利亞式房屋的圖像)+“現(xiàn)代房屋”-“維多利亞式房屋”。
使用unCLIP,可以將CLIP概念空間中的點(diǎn)轉(zhuǎn)化回圖像,并在將圖像的嵌入沿著“前”標(biāo)題(“維多利亞式房屋”)和“后”標(biāo)題(“現(xiàn)代房屋”)指定的方向移動(dòng)時(shí),對(duì)正在發(fā)生的變化進(jìn)行視覺檢查。動(dòng)畫展示了這個(gè)軌跡,并提供了直觀上期待的證據(jù),即開始的維多利亞式房屋圖像確實(shí)正在被“現(xiàn)代化”。當(dāng)然,文本差異不僅限于建筑:轉(zhuǎn)換可以是任何可以用語(yǔ)言表達(dá)的“前后”的概念,這使得它成為一種多功能且強(qiáng)大的工具。
譯自(有刪改):http://adityaramesh.com/posts/dalle2/dalle2.html
本文轉(zhuǎn)載自公眾號(hào)AIGC最前線
原文鏈接:??https://mp.weixin.qq.com/s/EOqQ2XiA05GDSCh3KbyBmw??
