ProGAN、StyleGAN、Diffusion GAN…你都掌握了嗎?一文總結(jié)圖像生成必備經(jīng)典模型
生成模型是一種訓(xùn)練模型進(jìn)行無(wú)監(jiān)督學(xué)習(xí)的模型,即,給模型一組數(shù)據(jù),希望從數(shù)據(jù)中學(xué)習(xí)到信息后的模型能夠生成一組和訓(xùn)練集盡可能相近的數(shù)據(jù)。圖像生成(Image generation,IG)則是指從現(xiàn)有數(shù)據(jù)集生成新的圖像的任務(wù)。圖像生成模型包括無(wú)條件生成和條件性生成兩類,其中,無(wú)條件生成是指從數(shù)據(jù)集中無(wú)條件地生成樣本,即p(y);條件性圖像生成是指根據(jù)標(biāo)簽有條件地從數(shù)據(jù)集中生成樣本,即p(y|x)。
圖像生成也是深度學(xué)習(xí)模型應(yīng)用比較廣泛、研究程度比較深的一個(gè)主題,大量的圖像庫(kù)也為SOTA模型的訓(xùn)練和公布奠定了良好的基礎(chǔ)。在幾個(gè)著名的圖像生成庫(kù)中,例如CIFAR-10、ImageNet64、ImageNet32、STL-10、CelebA 256、CelebA64等等,目前公布出的最好的無(wú)條件生成模型有StyleGAN-XL、Diffusion ProjectedGAN;在ImageNet128、TinyImageNet、CIFAR10、CIFAR100等庫(kù)中,效果最好的條件性生成模型則是LOGAN、ADC-GAN、StyleGAN2等。

我們?cè)谶@篇文章中介紹圖像生成必備的TOP模型,從無(wú)條件生成模型和條件性生成模型兩個(gè)類別分別介紹。圖像生成模型的發(fā)展非??欤耘c其它幾個(gè)topic不同,圖像生成中必備的TOP模型介紹主要以近兩年的SOTA模型為主。
一、無(wú)條件生成模型
1.1 ProGAN
生成性對(duì)抗網(wǎng)絡(luò)(GAN)是機(jī)器學(xué)習(xí)中一個(gè)相對(duì)較新的概念,于2014年首次引入。GAN的目標(biāo)是合成與真實(shí)圖像無(wú)法區(qū)分的人工樣本,如圖像。GAN的基本組成部分是兩個(gè)神經(jīng)網(wǎng)絡(luò):一個(gè)新樣本的生成器(G),一個(gè)從訓(xùn)練數(shù)據(jù)和生成器輸出中提取樣本并預(yù)測(cè)它們是“真”還是“假”的鑒別器(D)。生成器的輸入是一個(gè)隨機(jī)向量(噪聲),因此其初始輸出也是噪聲。隨著訓(xùn)練的進(jìn)行,當(dāng)它收到鑒別器的反饋時(shí),會(huì)學(xué)習(xí)合成更“真實(shí)”的圖像。鑒別器還通過(guò)將生成的樣本與真實(shí)樣本進(jìn)行比較,隨著訓(xùn)練的進(jìn)行不斷改進(jìn),使得生成器更難欺騙它。
ProGAN是NVIDIA投稿ICLR 2018的一篇文章,ProGAN關(guān)鍵創(chuàng)新在于漸進(jìn)式訓(xùn)練,它在經(jīng)典GAN的基礎(chǔ)上首先通過(guò)學(xué)習(xí)在低分辨率圖像中也可以顯示的基本特征,來(lái)創(chuàng)建圖像的基本部分,并且隨著分辨率的提高和時(shí)間的推移,學(xué)習(xí)越來(lái)越多的細(xì)節(jié)。低分辨率圖像的訓(xùn)練不僅簡(jiǎn)單、快速,而且有助于更高級(jí)別的訓(xùn)練,因此,整體的訓(xùn)練也就更快。ProGAN被認(rèn)為是后來(lái)大熱的StyleGAN的前身。

圖1 ProGAN架構(gòu)
ProGAN的訓(xùn)練部分,從低分辨率的圖像開(kāi)始,通過(guò)向網(wǎng)絡(luò)添加層來(lái)逐步提高分辨率,如圖2所示。這種遞增的性質(zhì)允許訓(xùn)練首先發(fā)現(xiàn)圖像分布的大規(guī)模結(jié)構(gòu),然后將注意力轉(zhuǎn)移到越來(lái)越精細(xì)的細(xì)節(jié)上,而不是同時(shí)學(xué)習(xí)所有的尺度。使用生成器和鑒別器網(wǎng)絡(luò),它們是彼此的鏡像,并且總是同步增長(zhǎng)。在整個(gè)訓(xùn)練過(guò)程中,兩個(gè)網(wǎng)絡(luò)中的所有現(xiàn)有層都是可訓(xùn)練的。當(dāng)新的層被添加到網(wǎng)絡(luò)中時(shí),平穩(wěn)地將它們淡化,如圖3所示。這就避免了對(duì)已經(jīng)訓(xùn)練好的小分辨率層的突然沖擊。

圖2 訓(xùn)練開(kāi)始時(shí),生成器(G)和鑒別器(D)的空間分辨率都很低,只有4×4像素。隨著訓(xùn)練的進(jìn)行,逐步增加G和D的層數(shù),從而提高生成圖像的空間分辨率

圖3 當(dāng)生成器(G)和鑒別器(D)的分辨率翻倍時(shí),順利地淡化新層。這個(gè)例子說(shuō)明了從16×16圖像(a)到32×32圖像(c)的過(guò)渡。在過(guò)渡期間(b),把在更高的分辨率上操作的層當(dāng)作一個(gè)殘差塊,其權(quán)重α從0到1線性增加
GAN還有一個(gè)問(wèn)題是只捕捉訓(xùn)練數(shù)據(jù)中發(fā)現(xiàn)的變化的一個(gè)子集,mini-batch就是為了解決這個(gè)問(wèn)題提出的,它是通過(guò)在鑒別器的末尾添加一個(gè)minibatch層來(lái)實(shí)現(xiàn)的,該層學(xué)習(xí)一個(gè)大的張量,將輸入激活投射到一個(gè)統(tǒng)計(jì)數(shù)組。mini-batch中的每個(gè)樣本都會(huì)產(chǎn)生一組單獨(dú)的統(tǒng)計(jì)數(shù)據(jù),并將其串聯(lián)到該層的輸出中,這樣鑒別器就可以在內(nèi)部使用這些統(tǒng)計(jì)數(shù)據(jù)。
ProGAN的簡(jiǎn)化方案既沒(méi)有可學(xué)習(xí)的參數(shù),也沒(méi)有新的超參數(shù),而是引入了特征的標(biāo)準(zhǔn)差作為衡量標(biāo)準(zhǔn)。首先計(jì)算每個(gè)特征在每個(gè)空間位置上的標(biāo)準(zhǔn)偏差。然后,在所有特征和空間位置上平均這些估計(jì)值,得到一個(gè)單一的值。復(fù)制這個(gè)值并將其連接到所有的空間位置和minibatch上,產(chǎn)生一個(gè)額外的(恒定)特征圖。這一層可以插入鑒別器的任何地方,將其在最后插入效果最好。這個(gè)特征圖中包含了不同樣本之間的差異性信息,送入鑒別器后,經(jīng)過(guò)訓(xùn)練,生成樣本的差異性也會(huì)與訓(xùn)練樣本的相似。
此外,ProGAN還對(duì)生成器和鑒別器進(jìn)行了歸一化處理,歸一化主要是用來(lái)控制信號(hào)幅度,從而減少G與D之間的不正常競(jìng)爭(zhēng),沿channel維度對(duì)每個(gè)像素的特征長(zhǎng)度歸一化。minibatch statistic layer沿著batch維度求標(biāo)準(zhǔn)差,而它沿著channel維度求norm。
當(dāng)前 SOTA!平臺(tái)收錄ProGAN共 1 個(gè)模型實(shí)現(xiàn)資源。

項(xiàng)目 | SOTA!平臺(tái)項(xiàng)目詳情頁(yè) |
ProGAN | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/0190e1fa-5643-4043-8b75-9b863a6d20db |
1.2 StyleGAN
StyleGAN是一種開(kāi)創(chuàng)性的工作,不僅可以生成高質(zhì)量和逼真的圖像,還可以對(duì)生成的圖像進(jìn)行更好的控制和理解,從而比以前更容易生成可信的假圖像。StyleGAN是ProGAN圖像生成器的升級(jí)版本,重點(diǎn)關(guān)注生成器網(wǎng)絡(luò)(G)。
StyleGAN的重點(diǎn)就是“Style”,在提出StyleGAN的論文中具體是指人臉的風(fēng)格,包括人臉表情、人臉朝向、發(fā)型等等,還包括紋理細(xì)節(jié)上的人臉膚色、人臉光照等。進(jìn)一步對(duì)這些Style進(jìn)行細(xì)分為:1)粗-分辨率高達(dá)8*8-影響姿勢(shì)、一般發(fā)型、人臉形狀等;2)中等-分辨率16*16到32*32-影響更精細(xì)的人臉特征、發(fā)型、睜眼/閉眼等;3)精細(xì)-分辨率為64*64到1024*1024-影響配色方案(眼睛、頭發(fā)和皮膚)和微觀特征。

圖4 StyleGAN結(jié)構(gòu)
StyleGAN 的網(wǎng)絡(luò)結(jié)構(gòu)包含兩個(gè)部分,第一個(gè)是Mapping network,即圖 4(b)的左部分,由潛在變量 z 生成中間潛在變量 w的過(guò)程,w用來(lái)控制生成圖像的style。第二個(gè)是Synthesis network,它的作用是生成圖像,創(chuàng)新之處在于給每一層子網(wǎng)絡(luò)都輸入A 和 B,A 是由 w 轉(zhuǎn)換得到的仿射變換,用于控制生成圖像的style,B 是轉(zhuǎn)換后的隨機(jī)噪聲,用于豐富生成圖像的細(xì)節(jié),即每個(gè)卷積層都能根據(jù)輸入的A來(lái)調(diào)整"style"。整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)還是保持了 ProGAN 的結(jié)構(gòu)。經(jīng)典GAN的隨機(jī)變量或者潛在變量 z是通過(guò)輸入層,即前饋網(wǎng)絡(luò)的第一層提供給生成器的(圖4a)。而StyleGAN完全省略了輸入層,直接從一個(gè)學(xué)習(xí)的常數(shù)開(kāi)始(圖4b,右),即將 z 單獨(dú)用 mapping網(wǎng)絡(luò)變換成w,再將w輸入給 Synthesis network的每一層。
Mapping network 要做的事就是對(duì)潛在空間(latent space)進(jìn)行解耦,Mapping network由8個(gè)全連接層組成,其輸出與輸入層的大小相同。通過(guò)一系列仿射變換,由 z 得到 w,這個(gè) w 轉(zhuǎn)換成風(fēng)格y=(ys,yb) ,結(jié)合 AdaIN (adaptive instance normalization) 風(fēng)格變換方法:

使用輸入向量控制視覺(jué)特征的能力是有限的,因?yàn)樗仨氉裱?xùn)練數(shù)據(jù)的概率密度。例如,如果黑發(fā)人的圖像在數(shù)據(jù)集中更常見(jiàn),則更多輸入值將映射到該特征。因此,該模型無(wú)法將部分輸入(向量中的元素)映射到特征,這種現(xiàn)象稱為特征糾纏。然而,Mapping network通過(guò)使用另一個(gè)神經(jīng)網(wǎng)絡(luò),可以生成一個(gè)不必遵循訓(xùn)練數(shù)據(jù)分布的向量,并且可以減少特征之間的相關(guān)性。
具體到AdaIN(也稱為Style模塊),該模塊被添加到生成網(wǎng)絡(luò)的每個(gè)分辨率級(jí)別,并定義該級(jí)別中特征的視覺(jué)表達(dá):首先對(duì)卷積層輸出的每個(gè)通道進(jìn)行正則歸一化,以確??s放和移位達(dá)到預(yù)期效果;然后,使用另一個(gè)全連接層轉(zhuǎn)換為每個(gè)通道的比例和偏差;最后,將尺度變化和偏置移動(dòng)作用于卷積輸出的每個(gè)通道,從而定義卷積中每個(gè)濾波器的重要性。利用AdaIN實(shí)現(xiàn)了將信息從潛在變量轉(zhuǎn)化為一種視覺(jué)表現(xiàn)。在StyleGAN中,可以省略初始隨機(jī)噪聲輸入,用常量值替換。這種操作減少了特征糾纏,因?yàn)榫W(wǎng)絡(luò)不再依賴于互相糾纏的輸入向量。AdaIN 層的含義同BN層類似,其目的是對(duì)網(wǎng)絡(luò)中間層的輸出結(jié)果進(jìn)行scale和shift,以增加網(wǎng)絡(luò)的學(xué)習(xí)效果,避免梯度消失。相對(duì)于BN是學(xué)習(xí)當(dāng)前batch數(shù)據(jù)的mean和variance,Instance Norm則是采用了單張圖片。AdaIN則是使用learnable的scale和shift參數(shù)去對(duì)齊特征圖中的不同位置。
具體到人臉圖像生成任務(wù),人臉有很多的特征都很小且可以看作是隨機(jī)的,例如雀斑、頭發(fā)的精確位置、皺紋等,這些可以使圖像更逼真,并增加輸出的多樣性。將這些小特征插入GAN圖像的常用方法是向輸入向量添加隨機(jī)噪聲。然而,在許多情況下,由于上述特征糾纏現(xiàn)象,很難控制噪聲效果,這會(huì)導(dǎo)致圖像的其他特征受到影響。StyleGAN中的噪聲以與AdaIN機(jī)制類似的方式添加,即在AdaIN模塊之前向每個(gè)通道添加控制縮放的噪聲,并稍微改變其操作分辨率級(jí)別特征的視覺(jué)表達(dá)。
為了進(jìn)一步定位Style,引入混合正則化的處理方式,即在訓(xùn)練過(guò)程中,一定比例的圖像是使用兩個(gè)隨機(jī)潛在變量而不是一個(gè)潛在變量生成的。在生成這樣的圖像時(shí),只需在生成網(wǎng)絡(luò)中隨機(jī)選擇一個(gè)點(diǎn),從一個(gè)潛在變量切換到另一個(gè)潛在變量即Style mix。具體的,通過(guò)mapping network運(yùn)行兩個(gè)潛在變量z1、z2,并讓相應(yīng)的w1、w2控制style,使w1在crossover point之前適用,w2在crossover point之后適用。這種正則化技術(shù)可以防止網(wǎng)絡(luò)假設(shè)相鄰的風(fēng)格是相關(guān)的。
最后,針對(duì)特征解糾纏(disentanglement)問(wèn)題,對(duì)于disentanglement各種定義的共同的目標(biāo)是由線性子空間組成的隱藏空間,每個(gè)子空間控制一個(gè)變化因素。然而,Z中每個(gè)因素組合的采樣概率需要與訓(xùn)練數(shù)據(jù)中的相應(yīng)密度相匹配。如圖5所示,因素?zé)o法與典型的數(shù)據(jù)集和輸入的潛在分布完全分離。

圖5. 有兩個(gè)變化因素(圖像特征,如男性化和頭發(fā)長(zhǎng)度)的說(shuō)明性示例。(a) 一個(gè)樣本訓(xùn)練集,其中一些組合(如長(zhǎng)發(fā)男性)是缺失的。(b) 這迫使從Z到圖像特征的映射變得彎曲,以便被禁止的組合在Z中消失,以防止無(wú)效組合的采樣。(c) 從Z到W的學(xué)習(xí)映射能夠 "撤銷 "大部分的彎曲
為了量化特征分離的表現(xiàn),本文提出了量化兩種特征分離的新方法:
1)感知路徑長(zhǎng)度:在兩個(gè)隨機(jī)輸入之間插值時(shí),測(cè)量連續(xù)圖像之間的差異。劇烈的變化意味著多個(gè)功能一起發(fā)生了變化,它們可能會(huì)相互糾纏。
2)線性可分性:將輸入分類為二元類的能力,如男性和女性。分類越好,特征越可分離。
當(dāng)前 SOTA!平臺(tái)收錄StyleGAN共 75 個(gè)模型實(shí)現(xiàn)資源。

項(xiàng)目 | SOTA!平臺(tái)項(xiàng)目詳情頁(yè) |
StyleGAN | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/e072cfc0-26c3-40e7-a979-60df61170c7a |
1.3 StyleGAN2
StyleGAN2是為了應(yīng)對(duì)StyleGAN的問(wèn)題而提出的:少量生成的圖片有明顯的水珠(water-droplet artifacts),這個(gè)水珠也存在于feature map上。導(dǎo)致水珠的原因是 AdaIN,AdaIN對(duì)每個(gè)feature map進(jìn)行歸一化,因此有可能會(huì)破壞掉feature之間的信息。作者認(rèn)為出現(xiàn)droplet artifact的原因是生成器有意將信號(hào)強(qiáng)度信息隱藏再實(shí)例歸一化后的結(jié)果中:通過(guò)創(chuàng)建一個(gè)強(qiáng)大的、局部的尖峰來(lái)控制統(tǒng)計(jì)數(shù)據(jù),生成器可以有效地縮放信號(hào)。

圖6 StyleGAN存在的水珠問(wèn)題

圖7 重新設(shè)計(jì)StyleGAN synthesis network 。(a) StyleGAN,A表征生成style的學(xué)習(xí)映射變換,B為噪聲廣播操作;(b) StyleGAN的詳細(xì)表述,其中,將AdaIN拆分以更加明確歸一化操作,兩者均基于每個(gè)特征圖的平均值和標(biāo)準(zhǔn)偏差;(c)StyleGAN2架構(gòu),在開(kāi)始時(shí)刪除了一些冗余操作,將b和B的添加移動(dòng)到style的活動(dòng)區(qū)域之外,并僅調(diào)整每個(gè)特征映射的標(biāo)準(zhǔn)偏差;(d) 將實(shí)例歸一化替換為“demodulation”操作,將其應(yīng)用于與每個(gè)卷積層相關(guān)聯(lián)的權(quán)重
修改StyleGAN的生成器。首先,StyleGAN2將AdaIN重構(gòu)為Weight Demodulation。如圖7(d)所示,modulation根據(jù)傳入的style對(duì)卷積的每個(gè)輸入特征圖進(jìn)行縮放,也可以通過(guò)縮放卷積權(quán)重來(lái)實(shí)現(xiàn):

其中,w和w’分別表征原始的和modulated的權(quán)重,s_i為對(duì)應(yīng)第i個(gè)輸入特征圖的尺度,j和k分別表示生成輸出特征圖和卷積的空間分布圖。接著對(duì)卷積層的權(quán)重進(jìn)行demod:

從而得到新的卷積層權(quán)重為:

加一個(gè)小的?是為了避免分母為0,保證數(shù)值穩(wěn)定性。盡管這種方式與Instance Norm并非在數(shù)學(xué)上完全等價(jià),但是weight demodulation同其它normalization 方法一樣,使得輸出特征圖有著standard的unit和deviation。此外,將scaling參數(shù)挪為卷積層的權(quán)重使得計(jì)算路徑可以更好的并行化。這種方式使得訓(xùn)練加速了約40%。
第二,雖然諸如FID或精確率和召回率(Precision and Recall,P&R)等GAN指標(biāo)成功地捕獲了生成器的許多方面,但它們?cè)趫D像質(zhì)量方面仍然有一些盲點(diǎn)。感知圖像質(zhì)量和感知路徑長(zhǎng)度(perceptual path length,PPL)之間的相關(guān)性指標(biāo)最初是用來(lái)量化從潛在空間到輸出圖像的映射的平滑度,通過(guò)測(cè)量潛在空間的小擾動(dòng)下生成的圖像之間的平均LPIPS距離來(lái)實(shí)現(xiàn)。更小的PPL(更平滑的發(fā)生器映射)似乎與更高的整體圖像質(zhì)量相關(guān),而其他指標(biāo)則對(duì)此并不敏感。為什么低PPL會(huì)與圖像質(zhì)量相關(guān),這一點(diǎn)尚不明確。作者假設(shè),在訓(xùn)練過(guò)程中,由于鑒別器對(duì)broken image進(jìn)行懲罰,則改進(jìn)生成器的最直接方式是有效地拉伸能夠產(chǎn)生良好圖像的潛在空間區(qū)域。
作者通過(guò)引入regularization的方式實(shí)現(xiàn)上述目標(biāo)。StyleGAN2使用lazy regularization的策略,即對(duì)數(shù)據(jù)分布開(kāi)始跑偏的時(shí)候才使用R1 regularization,其它時(shí)候不使用。Path Length Regularization的意義是使得latent space的插值變得更加平滑和線性。簡(jiǎn)單來(lái)說(shuō),當(dāng)在latent space中對(duì)latent vector進(jìn)行插值操作時(shí),我們希望對(duì)latent vector的等比例的變化直接反映到圖像中去。即:“在latent space和image space應(yīng)該有同樣的變化幅度(線性的latent space)”(比如說(shuō),當(dāng)你對(duì)某一組latent vector進(jìn)行了5個(gè)degree的偏移,那么反映在最后的生成圖像中,應(yīng)該是同樣的效果)。
最后,與StyleGAN第一代使用progressive growing的策略不同,StyleGAN2開(kāi)始尋求其它的設(shè)計(jì)以便于讓網(wǎng)絡(luò)更深,并有著更好的訓(xùn)練穩(wěn)定性。progressive growing的關(guān)鍵問(wèn)題是,逐漸演進(jìn)的生成器會(huì)對(duì)細(xì)節(jié)有著強(qiáng)烈的位置偏好;當(dāng)像牙齒或眼睛這樣的特征應(yīng)該在圖像上平滑移動(dòng)時(shí),它們反而可能在跳到下一個(gè)首選位置之前停留在原地。如圖8所示。

圖8. progressive growing會(huì)導(dǎo)致 "相位 "偽影。在這個(gè)例子中,牙齒沒(méi)有跟隨姿勢(shì),而是與相機(jī)保持一致,如藍(lán)線所示
為此,作者重新評(píng)估了StyleGAN的網(wǎng)絡(luò)設(shè)計(jì),并尋找一種能生成高質(zhì)量圖像而又不會(huì)逐漸增長(zhǎng)的架構(gòu)。如圖9所示,作者對(duì)比了MSG-GAN、對(duì)不同分辨率的RGB輸出的貢獻(xiàn)進(jìn)行上采樣和求和、殘差連接。StyleGAN2采用了類似ResNet的殘差連接結(jié)構(gòu)(residual block),使用雙線性濾波對(duì)前一層進(jìn)行上/下采樣,并嘗試學(xué)習(xí)下一層的殘差值(residual value)。通過(guò)一個(gè)resnet風(fēng)格的skip connection在低分辨率的特征映射到最終生成的圖像(圖9(c)的綠色block)。

圖9. 三個(gè)生成器(虛線以上)和鑒別器的結(jié)構(gòu)。上面和下面分別表示雙線性上采樣和下采樣。在殘差網(wǎng)絡(luò)中,這些還包括一個(gè)1×1的卷積,以調(diào)整特征圖的數(shù)量
當(dāng)前 SOTA!平臺(tái)收錄 StyleGAN2 共 1 個(gè)模型實(shí)現(xiàn)資源。

項(xiàng)目 | SOTA!平臺(tái)項(xiàng)目詳情頁(yè) |
StyleGAN2 | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/a07f5a80-bf97-4a33-a2a8-4ff938b1b82f |
1.4 StyleGAN3
對(duì)于StyleGAN系列來(lái)說(shuō),生成網(wǎng)絡(luò)是整體訓(xùn)練的,深層網(wǎng)絡(luò)特征的空間位置并不是由淺層網(wǎng)絡(luò)特征很強(qiáng)的控制,而是還受到監(jiān)督信息(如對(duì)抗損失、重構(gòu)損失等)的決定性的影響,粗糙特征(GAN的淺層網(wǎng)絡(luò)的輸出特征)主要控制了精細(xì)特征(GAN的深層網(wǎng)絡(luò)的輸出特征)的存在與否,沒(méi)有嚴(yán)格控制他們出現(xiàn)的精確位置。按照作者所說(shuō):“畫(huà)面上的細(xì)節(jié)似乎被粘在了圖像坐標(biāo)上,而不是被描述的物體表面?!?。作者認(rèn)為,其根本原因是信號(hào)處理導(dǎo)致了生成網(wǎng)絡(luò)的aliasing。StyleGAN3主要是為了解決這一問(wèn)題提出的,即實(shí)現(xiàn)高質(zhì)量的 Equivariance(等變性)。所以,StyleGAN3的標(biāo)題為 Alias-Free GAN。
StyleGAN2生成器由兩部分組成。首先,一個(gè)映射網(wǎng)絡(luò)將初始的、正常分布的latent轉(zhuǎn)換為 intermediate latent code w~W。然后,一個(gè)synthesis網(wǎng)絡(luò)G從學(xué)習(xí)的4×4×512常數(shù)Z0開(kāi)始,應(yīng)用N層處理—包括卷積、非線性、上采樣和per-pixel噪聲—以生成輸出圖像Z_N=G(Z0;w)。intermediate latent code w控制G中卷積核的調(diào)制。各層遵循嚴(yán)格的2×上采樣,在每個(gè)分辨率下執(zhí)行兩個(gè)層,每次上采樣后特征圖的數(shù)量減半。此外,StyleGAN2采用了skip connection、 mixing regularization和 path length regularization 。StyleGAN3目標(biāo)是使G的每一層對(duì)連續(xù)信號(hào)都是Equivariance的,這樣所有較細(xì)的細(xì)節(jié)就會(huì)與局部鄰域的較粗的特征一起轉(zhuǎn)化。如果這成功了,整個(gè)網(wǎng)絡(luò)也會(huì)變得類似于Equivariance。換句話說(shuō),目標(biāo)是使synthesis網(wǎng)絡(luò)的連續(xù)操作g對(duì)應(yīng)用于連續(xù)輸入z0的變換t(平移和旋轉(zhuǎn))具有Equivariance:

其中 t 是一種變換(平移或旋轉(zhuǎn)),上式表明生成器對(duì)特征信號(hào)的連續(xù)運(yùn)算應(yīng)該對(duì)于平移和旋轉(zhuǎn)操作是等變的。改進(jìn)后的生成器網(wǎng)絡(luò)結(jié)構(gòu)圖見(jiàn)圖10。

圖10 (a) 2×上采樣濾波器的一維例子,n = 6, s = 2, fc = 1, fh = 0.4(藍(lán)色)。設(shè)置fh=0.6使得過(guò)渡帶更寬(綠色),這減少了不需要的阻帶紋波,從而導(dǎo)致更強(qiáng)的衰減。(b) alias-free生成器,對(duì)應(yīng)于配置T和R。主要的數(shù)據(jù)路徑包括傅里葉特征和歸一化,調(diào)制卷積和過(guò)濾非線性。(c) Flexible layer specification(配置T),N=14,sN=1024。截止點(diǎn)fc(藍(lán)色)和最小可接受的阻帶頻率ft(橙色)服從各層的幾何級(jí)數(shù);采樣率s(紅色)和實(shí)際阻帶fc+fh(綠色)是根據(jù)設(shè)計(jì)約束計(jì)算出來(lái)的
首先是將StyleGAN2的生成器的常數(shù)輸入替換為Fourier特征,刪除噪聲輸入,降低映射網(wǎng)絡(luò)深度并禁用 mixing regularization 和 path length regularization, 在每次卷積前使用簡(jiǎn)單的歸一化。(B,C,D改進(jìn)步驟)。
通過(guò)在目標(biāo)空間周?chē)3忠粋€(gè)固定大小的邊界來(lái)進(jìn)行近似,在每一層之后都要crop到這個(gè)擴(kuò)展的空間上。用理想低通濾波器的一個(gè)更好的近似來(lái)代替雙線性上采樣:帶有較大Kaiser窗口(n=6)的 sinc 濾波器,Kaiser窗口的好處是提供了對(duì)過(guò)渡帶和衰減的明確控制。改進(jìn)的邊界和上采樣得到了更好的平移Equivariance,但是FID變差了。(E改進(jìn)步驟)。
由于信號(hào)是有帶限的,所以可以切換上采樣和卷積的順序,允許將常規(guī)的2×上采樣和隨后與非線性相關(guān)的m×上采樣融合到一個(gè)2m×上采樣中,并將整個(gè)upsample-LReLU-downsample過(guò)程寫(xiě)到一個(gè)自定義的CUDA內(nèi)核中。(F改進(jìn)步驟)。
為了抑制aliasing,可以簡(jiǎn)單地將截止頻率降低到fc = s/2 - fh,這樣可以確保所有的alias頻率(高于s/2)都在阻帶中。作者又額外加了一些trick使得FID低于了StyleGAN2。(G改進(jìn)步驟)。
引入一個(gè)學(xué)習(xí)型仿射層,為輸入的傅里葉特征輸出全局平移和旋轉(zhuǎn)參數(shù)。該層被初始化為 identity transformation 。但隨著時(shí)間的推移,在有利的情況下會(huì)學(xué)習(xí)使用該機(jī)制。(H改進(jìn)步驟)。
作者還設(shè)計(jì)了新的層規(guī)范化操作再次提高平移的Equivariance,目的是增強(qiáng)衰減來(lái)完全消除alias。(T改進(jìn)步驟)。
生成一個(gè)有兩個(gè)變體的rotated equivalence網(wǎng)絡(luò)。首先,將所有層的3×3卷積改為1×1,并通過(guò)將特征圖的數(shù)量增加一倍來(lái)彌補(bǔ)容量的減少。在這個(gè)配置中,只有上采樣和下采樣操作在像素之間傳播信息。其次,用一個(gè)徑向?qū)ΨQ的jinc-based的濾波器取代sinc-based的下采樣濾波器,用同樣的Kaiser方案來(lái)構(gòu)建這個(gè)濾波器。對(duì)所有的層都是這樣做的,除了兩個(gè)關(guān)鍵的采樣層。這兩個(gè)采樣層最重要的是要與訓(xùn)練數(shù)據(jù)的potential non-radiometric spectrum相匹配。(R改進(jìn)步驟)。
當(dāng)前 SOTA!平臺(tái)收錄 StyleGAN3 共 2 個(gè)模型實(shí)現(xiàn)資源。

項(xiàng)目 | SOTA!平臺(tái)項(xiàng)目詳情頁(yè) |
StyleGAN3 | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/6f7d3d51-762a-4d23-a572-3ea79ab49b4f |
1.5 VDVAE
VDVAE是一個(gè)層次化的VAE,它能快速生成樣本,并在所有自然圖像基準(zhǔn)上的 log-likelihood 方面優(yōu)于PixelCNN。文章論證了增加 VAE 的層數(shù)能夠在保證生成速度的情況下,實(shí)現(xiàn)超過(guò)自回歸模型 (AR) 的 NLL (negative log-likelihood)。VDVAE的基本假設(shè)就是:我們可以通過(guò)增加 VAE 的層數(shù)獲得更好的 VAE。首先,本文采用類似 LVAE 的并行化生成,示意圖如下:

圖11 在VAE中可能學(xué)到的不同生成模型。左圖:一個(gè)層次化的VAE可以通過(guò)使用確定性的identity functions作為編碼器來(lái)學(xué)習(xí)自回歸模型,并在先驗(yàn)中學(xué)習(xí)自回歸。右圖:學(xué)習(xí)編碼器可以導(dǎo)致潛在變量的有效分層(黑色)。如果最下面的三組潛在變量是有條件地獨(dú)立于第一組潛在變量的,那么它們可以在一個(gè)單層內(nèi)平行生成,可能會(huì)導(dǎo)致更快的采樣
當(dāng)然了,只是單純的增加VAE的層數(shù)并不可行,作者對(duì)VAE進(jìn)行了一些改進(jìn),包括減少 residual block 的維度,將殘差乘以一個(gè)常數(shù),去掉 weight normalization, 使用 nearest-neighbour upsampling, skip 較大的 gradient 等。如圖12所示。它類似于ResNet VAE,但有bottleneck ResNet塊。對(duì)于每個(gè)隨機(jī)層,先驗(yàn)和后驗(yàn)是對(duì)角線高斯分布。作為權(quán)重歸一化和依賴數(shù)據(jù)的初始化的替代方案,采用默認(rèn)的PyTorch權(quán)重歸一化。唯一的例外是對(duì)每個(gè)剩余bottleneck ResNet塊中的最后一個(gè)卷積層,將其按1/sqrt(N)進(jìn)行擴(kuò)展,其中N是深度。此外,對(duì) "unpool "層使用了最近鄰的上采樣,當(dāng)與ResNet架構(gòu)配對(duì)時(shí),可以完全消除相關(guān)工作中出現(xiàn)的 "free bits "和KL "warming up "。當(dāng)上采樣通過(guò)轉(zhuǎn)置卷積層進(jìn)行時(shí),網(wǎng)絡(luò)可能會(huì)忽略低分辨率的層(例如,1x1或4x4層)。

圖12. 自上而下的VAE架構(gòu)的圖示。殘差塊類似于bottleneck ResNet塊。q_φ(.)和p_θ(.)是對(duì)角線高斯分布。使用平均池化和最近鄰上采樣來(lái)進(jìn)行池化和非池化層的處理
當(dāng)前 SOTA!平臺(tái)收錄 VDVAE 共1個(gè)模型實(shí)現(xiàn)資源。

項(xiàng)目 | SOTA!平臺(tái)項(xiàng)目詳情頁(yè) |
VDVAE | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/0ed2229c-722b-47fb-b6aa-d22dedf87f1b |
1.6 NCP-VAE
VAE是強(qiáng)大的基于似然的生成模型之一,在許多領(lǐng)域的應(yīng)用都取得了很好的效果。然而,它們很難生成高質(zhì)量的圖像,特別是當(dāng)從先驗(yàn)中獲得的樣本沒(méi)有任何調(diào)節(jié)時(shí)。對(duì)VAEs生成質(zhì)量差的一個(gè)解釋是 prior hole 問(wèn)題:先驗(yàn)分布不能與總的近似后驗(yàn)相匹配。由于這種不匹配,潛在空間中存在著在先驗(yàn)下具有高密度的區(qū)域,而這些區(qū)域并不對(duì)應(yīng)于任何編碼的圖像。來(lái)自這些區(qū)域的樣本被解碼為損壞的圖像。為了解決這個(gè)問(wèn)題,作者提出了一個(gè)基于能量的先驗(yàn),其定義是基數(shù)先驗(yàn)分布與reweighting factor的乘積,目的是使基數(shù)更接近總后驗(yàn)。通過(guò)噪聲對(duì)比估計(jì)來(lái)訓(xùn)練reweighting factor,并將其推廣到具有許多潛在變量組的分層VAEs。
這項(xiàng)工作的關(guān)鍵點(diǎn)在于,作為訓(xùn)練VAE的結(jié)果,可訓(xùn)練的先驗(yàn)被盡可能地接近 aggregate posterior。先驗(yàn)和 aggregate posterior 之間的不匹配可以通過(guò)重新加權(quán)來(lái)減少,在與 aggregate posterior 不匹配的地方重新調(diào)整其可能性。為了表示這種加權(quán)機(jī)制,使用EBM( Energy-based Models )來(lái)確定先驗(yàn),EBM是由一個(gè) reweighting factor 和一個(gè)基礎(chǔ)可訓(xùn)練先驗(yàn)的乘積來(lái)定義的,如圖13所示。用神經(jīng)網(wǎng)絡(luò)表示 reweighting factor ,用正態(tài)分布表示基本先驗(yàn)。

圖13 提出了一種EBM先驗(yàn),使用基礎(chǔ)先驗(yàn)p(z)和 reweighting factor r(z)的乘積,旨在使p(z)更接近aggregate posterior q(z)
基于EBM,引入NCP( the noise contrastive prior )計(jì)算基礎(chǔ)先驗(yàn):


使用兩階段訓(xùn)練方法訓(xùn)練NCP,如圖14。在第一階段,使用原始VAE目標(biāo)訓(xùn)練VAE。在第二階段,使用噪聲對(duì)比估計(jì)(noise contrast estimation,NCE)來(lái)訓(xùn)練重新加權(quán)因子r(z)。NCE訓(xùn)練一個(gè)分類器來(lái)區(qū)分來(lái)自先驗(yàn)的樣本和來(lái)自aggregate posterior的樣本。NCP是由基礎(chǔ)先驗(yàn)和reweighting factor的乘積構(gòu)建的,通過(guò)分類器形成。在測(cè)試時(shí),使用采樣-重要性-采樣( sampling-importance-resampling ,SIR)或LD(Langevin dynamics )從NCP中采樣。然后,這些樣本被傳遞給解碼器以產(chǎn)生輸出樣本。

圖14. NCP-VAE的訓(xùn)練分為兩個(gè)階段
最后,作者還將NCP-VAE擴(kuò)展到了Hierarchical VAEs

其中,每個(gè)因子都是EBM。pNCP(z)類似于具有自回歸結(jié)構(gòu)的組間EBM。在第一階段,以先驗(yàn)的方式訓(xùn)練HVAE:

在第二階段,我們使用K個(gè)二進(jìn)制分類器,每個(gè)分類器用于一個(gè)分層組。通過(guò)以下方式訓(xùn)練每個(gè)分類器


模型 | SOTA!平臺(tái)模型詳情頁(yè) |
NCP-VAE | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/74d15cbe-7f75-434a-a1cf-a69ae303eec6 |
1.7 StyleGAN-xl
StyleGAN-XL 是第一個(gè)在 ImageNet-scale 上演示 1024^2 分辨率圖像合成的模型。實(shí)驗(yàn)表明,即使是最新的 StyleGAN3 也不能很好地?cái)U(kuò)展到 ImageNet 上,特別是在高分辨率時(shí),訓(xùn)練會(huì)變得不穩(wěn)定。StyleGAN為關(guān)于圖像質(zhì)量和可控性的生成建模設(shè)定了一種標(biāo)桿方法。但StyleGAN在 ImageNet 等大型非結(jié)構(gòu)化數(shù)據(jù)集上表現(xiàn)不好,它更適合人臉數(shù)據(jù)方面的生成。
研究者首先修改了StyleGAN的生成器及其正則化損失,調(diào)整了潛在空間以適應(yīng) Projected GAN (Config-B) 和類條件設(shè)置 (Config-C);然后重新討論了漸進(jìn)式增長(zhǎng),以提高訓(xùn)練速度和性能 (Config-D);接下來(lái)研究了用于 Projected GAN 訓(xùn)練的特征網(wǎng)絡(luò),以找到一個(gè)非常適合的配置 (Config-E);最后,提出了分類器引導(dǎo),以便 GAN 通過(guò)一個(gè)預(yù)訓(xùn)練的分類器 (Config-F) 提供類別信息。這樣一來(lái),就能夠訓(xùn)練一個(gè)比以前大得多的模型,同時(shí)需要比現(xiàn)有技術(shù)更少的計(jì)算量。StyleGAN-XL 在深度和參數(shù)計(jì)數(shù)方面比標(biāo)準(zhǔn)的 StyleGAN3 大三倍。

圖15. StyleGAN-XL訓(xùn)練。將潛在編碼z和類別標(biāo)簽c送入預(yù)訓(xùn)練的嵌入和映射網(wǎng)絡(luò)G??,以生成 style code w,這些code調(diào)制synthesis網(wǎng)絡(luò)G??的卷積。在訓(xùn)練過(guò)程中,逐漸增加層數(shù),使?jié)u進(jìn)式增長(zhǎng)的每個(gè)階段的輸出分辨率增加一倍。只訓(xùn)練最新的層,而保持其他層的固定。G??只在最初的162階段進(jìn)行訓(xùn)練,在更高的分辨率階段保持固定。合成的圖像在小于2242時(shí)被放大,并通過(guò)一個(gè)CNN和一個(gè)ViT( Vision Transformer)以及各自的特征混合塊(CCM+CSM)。在更高的分辨率下,CNN接收未經(jīng)修改的圖像,而ViT接收降頻輸入,以保持低內(nèi)存要求,但仍利用其全局反饋。最后,在得到的多尺度特征圖上應(yīng)用八個(gè)獨(dú)立的鑒別器。圖像也被送入分類器CLF,用于分類器指導(dǎo)
此外,還可以進(jìn)一步細(xì)化所得到的重構(gòu)結(jié)果,StyleGAN-xl可以在肖像或特定對(duì)象類的應(yīng)用領(lǐng)域完成逆映射、編輯等擴(kuò)展任務(wù),將 PTI 和 StyleGAN-XL 相結(jié)合,幾乎可以精確地反演域內(nèi) (ImageNet 驗(yàn)證集) 和域外圖像。同時(shí)生成器的輸出保持平滑。
當(dāng)前 SOTA!平臺(tái)收錄 StyleGAN-XL 共 1 個(gè)模型實(shí)現(xiàn)資源。

項(xiàng)目 | SOTA!平臺(tái)項(xiàng)目詳情頁(yè) |
StyleGAN-XL | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/01d16b00-e79f-4527-a7e3-08354b5d9b47 |
1.8 Diffusion GAN
Diffusion-GAN主要關(guān)注的是 stabilize GAN training 的問(wèn)題。為了實(shí)現(xiàn)GAN的穩(wěn)定訓(xùn)練,將實(shí)例噪聲注入鑒別器的輸入理論上可行但缺少實(shí)踐的驗(yàn)證。本文介紹了Diffusion-GAN,它采用了高斯混合分布,在前向擴(kuò)散鏈條中的所有擴(kuò)散步驟中引入實(shí)例噪聲。將觀察到的或生成的數(shù)據(jù)中擴(kuò)散出的混合物的隨機(jī)樣本作為輸入送入鑒別器。生成器通過(guò)前向擴(kuò)散鏈反向傳播其梯度進(jìn)行更新,其長(zhǎng)度是自適應(yīng)調(diào)整的,以控制每個(gè)訓(xùn)練步驟中允許的最大噪聲與數(shù)據(jù)比率。

圖16. Diffusion-GAN的流程圖。上排圖像代表真實(shí)圖像的前向擴(kuò)散過(guò)程,而下排圖像代表生成的假圖像的前向擴(kuò)散過(guò)程。鑒別器學(xué)會(huì)在所有擴(kuò)散步驟中區(qū)分?jǐn)U散的真圖像和擴(kuò)散的假圖像
Diffusion-GAN的對(duì)應(yīng)目標(biāo)是vanilla GAN的最小-最大目標(biāo),定義為

鑒別器D學(xué)習(xí)區(qū)分?jǐn)U散的生成樣本y_g和擴(kuò)散的真實(shí)觀測(cè)值y,時(shí)間為?t∈{1, . . . , T},具體的優(yōu)先級(jí)由π_t的值決定。生成器G學(xué)習(xí)將潛在變量z映射到它的輸出x_g=G_θ(z),它可以在擴(kuò)散鏈的任何一步騙過(guò)鑒別器。y_g~q(y | G_θ(z), t)可以被重新參數(shù)化為

梯度可以直接反向傳播到生成器。隨著t的增加,y和y_g中的噪聲與數(shù)據(jù)之比也在增加,從而使鑒別器D的任務(wù)越來(lái)越難。作者設(shè)計(jì)了一個(gè)擴(kuò)散強(qiáng)度的自適應(yīng)控制,以便更好地訓(xùn)練鑒別器。作者通過(guò)適應(yīng)性地修改T來(lái)實(shí)現(xiàn)這一目標(biāo)。我們?yōu)門(mén)設(shè)計(jì)了一個(gè)基于度量r_d的 self-paced schedule,這個(gè)schedule評(píng)估了鑒別器的過(guò)擬合度

為了更好地防止鑒別器過(guò)擬合,定義t作為一個(gè)不對(duì)稱的離散分布,鼓勵(lì)鑒別器在T增加時(shí)觀察新增加的擴(kuò)散樣本。

當(dāng)T開(kāi)始增加時(shí),鑒別器對(duì)所看到的樣本已經(jīng)很有信心,所以我們希望它探索更多的新樣本,以抵消鑒別器的過(guò)度擬合。
當(dāng)前 SOTA!平臺(tái)收錄 Diffusion-GAN 共 1 個(gè)模型實(shí)現(xiàn)資源。

模型 | SOTA!平臺(tái)模型詳情頁(yè) |
Diffusion-GAN | 前往SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:https://sota.jiqizhixin.com/project/9aa9b499-adec-46a3-aef9-4cd73e1c13ec |
































