我們能完全解決GAN中的模式崩潰問題嗎? 原創(chuàng)
模式崩潰會導(dǎo)致生成對抗網(wǎng)絡(luò)(GAN)產(chǎn)生重復(fù)輸出。盡管有一些解決方案,但并沒有一種能夠完全解決這個問題的方法。那么,研究人員將如何解決這個問題?
事實上,生成式對抗網(wǎng)絡(luò)(GAN)是人工智能領(lǐng)域中令人矚目的應(yīng)用之一。GAN風(fēng)靡全球,憑借生成逼真的圖像、深度偽造(Deepfake)視頻、人工智能生成的藝術(shù)作品,甚至合成的生物數(shù)據(jù),其能力讓人們驚嘆不已。但是GAN也有不為人知的秘密,這是工程師、人工智能愛好者和研究人員多年來面臨的一個難題:模式崩潰。
如果你以前訓(xùn)練過GAN,那么就體會過其非凡的魅力。比如見證模型進(jìn)化,完善功能,并創(chuàng)造越來越逼真的對象——這真是令人興奮!但這種情況發(fā)生了一些變化,GAN不再生成多樣化的輸出,而是開始重復(fù)生成幾乎難以區(qū)分的同一類物體的變體。就像讓GAN生成形態(tài)各異的貓,但它卻總是一次又一次地展示出同一只黑貓,這有些令人哭笑不得。
為什么會這樣? 到底發(fā)生了什么?真的能解決這個問題嗎?
在模式崩潰期間會發(fā)生什么?
從根本上來說,什么是模式崩潰?為什么GAN這個具有如此巨大潛力的模型會崩潰,并拒絕生成多樣化的數(shù)據(jù)?
在GAN框架中,有兩個神經(jīng)網(wǎng)絡(luò):生成器和鑒別器。生成器將隨機噪聲作為輸入,并嘗試生成假數(shù)據(jù)(例如圖像或文本),而鑒別器則負(fù)責(zé)區(qū)分真實數(shù)據(jù)和生成器生成的假合成數(shù)據(jù)。如果生成器成功欺騙了鑒別器,就是生成器的勝利。如果鑒別器識別出假數(shù)據(jù),那就是鑒別器的勝利。這是一個雙方參與的“對抗”游戲。
在理論上,隨著時間的推移,生成器應(yīng)該能夠創(chuàng)建出越來越逼真并且多樣化的樣本,捕捉到真實數(shù)據(jù)分布(稱為“模式”)中的所有微妙變化。但在實際操作中,這種平衡往往會失控。生成器找到了一條捷徑,通常是通過生成一些樣本能夠很好地欺騙鑒別器。其結(jié)果如何?生成器從有限的輸出集中采樣,而沒有捕獲真實數(shù)據(jù)中存在的所有潛在變化。
從形式上來說,當(dāng)生成器將許多潛在空間點(應(yīng)該對應(yīng)多樣化的輸出)映射到僅包含少數(shù)(已經(jīng)崩潰)輸出的子集時,就會發(fā)生模式崩潰。所以,生成器不會合成不同類型的圖像,例如不同品種的狗,而是認(rèn)為:“這張哈巴狗的圖像曾經(jīng)奏效!我會繼續(xù)生產(chǎn)哈巴狗的圖像?!边@對哈巴狗愛好者來說很酷;但對于希望生成拉布拉多犬或吉娃娃的人來說,那就令人失望了。
為什么會出現(xiàn)模式崩潰?
我們從技術(shù)層面更深入地探討,因為了解問題的根源是直面并解決問題的關(guān)鍵。
問題的根源在于GAN如何優(yōu)化其生成器的分布。需要記住,生成器和鑒別器之間的對抗游戲是基于最小化Jensen-Shannon(JS)散度的。這是一種復(fù)雜的說法,GAN試圖將真實數(shù)據(jù)分布和虛假(生成)數(shù)據(jù)分布之間的距離最小化。JS散度之所以被廣泛使用,是因為它消除了極端的不平衡,但關(guān)鍵問題在于:當(dāng)真實數(shù)據(jù)和生成的數(shù)據(jù)分布差異太大時,梯度就會停止流動。
可以這樣想:當(dāng)鑒別器在區(qū)分真實與虛假方面變得過于出色時,生成器收到的有關(guān)如何改進(jìn)的反饋就會太少。其結(jié)果如何?生成器利用它可以精確再現(xiàn)的少數(shù)模式——通常會會陷入一組狹窄的輸出集合中,這些輸出足以欺騙鑒別器。從技術(shù)上來說,GAN的優(yōu)化游戲陷入了一個局部最小值。
而且,這不僅僅是JS散度的問題。KL散度也有其自身的問題。如果真實分布中的一個模式在生成的樣本中缺失(想象GAN從未生成白貓的圖片)那么,KL散度最終將趨于無窮大。這只會讓事情變得更糟,因為當(dāng)模型“試圖優(yōu)化”這個散度時,它已經(jīng)達(dá)到了一個沒有什么可優(yōu)化的地步。它徹底崩潰了。
Wasserstein GAN:一個具有發(fā)展前景的解決方案?
那么應(yīng)該如何解決這個問題呢?
人工智能領(lǐng)域引入的一種創(chuàng)新方法——Wasserstein GANs(WGANs)引起了廣泛討論。WGAN沒有使用JS散度,而是用Earth Mover’s Distance(或Wasserstein Distance)取而代之。這衡量的是將一個分布轉(zhuǎn)換為另一個分布所需的成本。
真正令人興奮的是,與JS散度不同,即使生成器的分布和實際數(shù)據(jù)分布相距甚遠(yuǎn),Wasserstein距離也能給出有意義的梯度。這意味著,在訓(xùn)練過程中,生成器會獲得連續(xù)并且有用的反饋,指導(dǎo)它如何逐步調(diào)整其分布以更好地匹配真實數(shù)據(jù),從而傾向于學(xué)習(xí)更平滑、更多樣化的表示。
但是,事情不可能這么簡單。
盡管WGAN確實可以提供幫助,但并不是靈丹妙藥。WGAN最初面臨的一個問題是,為了確保評論家(接替鑒別器的角色)表現(xiàn)良好,必須削減權(quán)重,這導(dǎo)致了優(yōu)化方面的問題。因此出現(xiàn)了一個名為WGAN-GP(帶有梯度懲罰的Wasserstein GAN)的升級版本,它通過懲罰梯度而不是削減權(quán)重,以更平滑的方式強制執(zhí)行Lipschitz連續(xù)性約束。
簡而言之:Wasserstein GAN在許多情況下能緩解模式崩潰問題,但在面對高度復(fù)雜的數(shù)據(jù)分布時仍會陷入困境。它們提供了信息更豐富的優(yōu)化路徑,但是即便有了這種復(fù)雜的修復(fù)方法,模式崩潰仍會發(fā)生。
微調(diào)GAN:小批量鑒別和展開式GAN(Unrolled GAN)
以下進(jìn)一步探索研究人員為解決模式崩潰而嘗試的一些更具創(chuàng)意的方法。
1.小批量鑒別
一個簡單而有效的想法來自于小批量鑒別。這個概念是為了讓鑒別器更智能——不僅在于區(qū)分單個假樣本和真實樣本,還能識別出缺乏多樣性的整批生成樣本。如果在同一批次中有太多生成的樣本過于相似,鑒別器就會發(fā)現(xiàn)這一點,迫使生成器變得更加多樣化。
這是如何實現(xiàn)的?通過將鑒別器的小批量統(tǒng)計信息與生成的樣本進(jìn)行比較,可以增強鑒別器的能力。如果生成的樣本在特征空間中彼此過于接近,判別器就會察覺出問題,并告訴生成器:“再試一次,你一直在給我重復(fù)同一種類型的數(shù)據(jù)!”
從數(shù)學(xué)角度來看,基于特征的內(nèi)核應(yīng)用于整個批處理。如果某些特征空間中的兩個樣本非常相似,它們很可能會陷入同一模式。此時,鑒別器相應(yīng)地懲罰生成器。
但是,小批量鑒別并不是靈丹妙藥。它增加了計算成本,有時可能過于嚴(yán)格,導(dǎo)致生成器變得過于謹(jǐn)慎。
2.展開式GAN(Unrolled GAN)
還有一種更具前瞻性的方法:Unrolled GAN。這個解決方案是由谷歌DeepMind的研究人員提供的,它基于一個巧妙的想法。與其只更新鑒別器訓(xùn)練的一步生成器,不如將鑒別器的優(yōu)化展開到多個步驟中。
生成器不再局限于應(yīng)對短期的“游戲”,即欺騙當(dāng)前狀態(tài)的鑒別器,而是被迫預(yù)測并應(yīng)對判別器在訓(xùn)練過程中的演變。通過展開,生成器不斷嘗試預(yù)測其行為將如何影響未來的判別器,并基于這種長期視角進(jìn)行訓(xùn)練。
從數(shù)學(xué)上講,這意味著生成器不能直接將傳統(tǒng)的對抗損失最小化。與其相反,它最小化了展開損失函數(shù),包含了鑒別器的幾個梯度步驟的完全“展開”。
這是一種很好的修復(fù)方法,它通過迫使生成器經(jīng)常用沖其投注的方式來顯著減少模式崩潰的趨勢,而不是依賴立即利用當(dāng)前的鑒別器行為。
但是,展開會使GAN訓(xùn)練的計算成本更高。對于每次生成器的更新,可能需要多個鑒別器梯度步驟,這將顯著降低訓(xùn)練速度。
潛在問題:InfoGAN和潛在空間正則化
在這里還沒有涉及導(dǎo)致模式崩潰的一個非常核心的因素:潛在空間。
傳統(tǒng)GAN在將隨機噪聲輸入(潛碼)映射到生成樣本方面沒有提供太多結(jié)構(gòu)。這是有問題的,因為如果映射缺乏結(jié)構(gòu),生成器可能會將多個潛碼分組到一個模式中,從而有效減少輸出的多樣性。
解決這個問題的一個簡單但有效的方法是InfoGAN——它是一種變體,可以最大限度地利用潛碼和生成輸出之間的互信息(Mutual Information)。
互信息鼓勵生成器尊重潛在空間中的變化。這產(chǎn)生了可解釋的潛在空間,其中潛碼的不同維度對應(yīng)于數(shù)據(jù)中有意義的變化。例如,一個維度現(xiàn)在可以明確控制生成對象的旋轉(zhuǎn)或面部特征,從而帶來更多的模式多樣性。
這在圖像生成或解糾纏的圖像到圖像的轉(zhuǎn)換等領(lǐng)域特別有用,在這些領(lǐng)域中,需要關(guān)心的是執(zhí)行不同的變化,而不是陷入少數(shù)幾個模式。
真的能消除模式崩潰嗎?
事實上,雖然已經(jīng)提出并實施了許多修復(fù)方法(從WGAN到Unrolled GAN等),但完全消除模式崩潰仍然難以實現(xiàn)。這并不是說沒有取得進(jìn)展,已經(jīng)在很大程度上改進(jìn)了GAN。然而,模式崩潰似乎是生成器和鑒別器之間動態(tài)關(guān)系的固有特性。這兩個神經(jīng)網(wǎng)絡(luò)在進(jìn)行競爭,而只要有競爭,就可能學(xué)會利用模式或捷徑。
也就是說,例如更健壯的損失函數(shù)、批量級反饋(小批量鑒別)和混合努力(InfoGAN)等緩解策略,已經(jīng)使模式崩潰在許多實際應(yīng)用中不再是交易破壞者。我們可以有效地引導(dǎo)GAN覆蓋有意義的模式。
在未來,可能會看到將對抗性框架與規(guī)范化流等方法結(jié)合起來的混合設(shè)計,這些方法通過設(shè)計自然地避免了模式崩潰。
那么能否徹底消除模式崩潰?可能不會。但只要了解它發(fā)生的原因以及有哪些工具可用,就可以有效緩解模式崩潰,從而構(gòu)建出一些出色的模型。
雖然GAN有一些問題,但它們?nèi)匀皇侨斯ぶ悄馨l(fā)展中最令人興奮的領(lǐng)域之一。模式崩潰只是使這個領(lǐng)域如此豐富和引人注目的眾多謎題之一。如果你在解決模式崩潰方面有新突破,歡迎分享。讓我們一起解決這個問題。
原文標(biāo)題:?Mode Collapse in GANs: Can We Ever Completely Eliminate This Problem???,作者:Ashish Pawar
