iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0

前言

我們從第10天陸續介紹了許多GAN模型,這些模型都能夠生成圖片,也都各有優缺點。雖然每個GAN的應用都不一樣,也礙於篇幅無法介紹所有的GAN模型給各位,所以今天的文章將會簡單回顧過去做的GAN,並且再提供各位一些資源,以及其他GAN的介紹,第7天也有介紹一些GAN的模型種類。

這幾天做了甚麼?

這幾天介紹與實作分享了許多GAN模型,接下來我將再複習一下這幾天介紹的所有GAN的原理以及介紹,實作部分各位可以再去看看~

  • D10:GAN,最原始的生成對抗網路,雖然能做的很有限,但是做為GAN的始祖還是相當重要。[實作]
  • D12:DCGAN,首次使用了CNN為架構的GAN,對於圖像生成任務能比一般的GAN好一點,且計算量要求較低。[實作]
  • D14:WGAN,使用了Wasserstein距離作為損失函數,大大的提升的GAN訓練的穩定性。[實作]
  • D16:BGAN,訓練方式類似於強化學習,使用了「完美」判別器做為獎勵函數的概念,並讓生成器盡量生成出高分的圖片。[實作]
  • D18:CGAN,首次增加了條件輸入,讓GAN的生成結果變得可控,可以根據輸入生成對應圖片。[實作]
  • D20:Pix2Pix,基於CGAN的模型,能做到的事情很多,例如風格變換、草圖生圖、圖像修復等。本質上是一個圖像翻譯、風格變換的模型。[實作]
  • D22:SRGAN,使用了較多層的GAN,用於把低清圖生成變成高清圖。[實作]

還有甚麼GAN可以試試看?

除上所述,還有許多GAN能夠勝任不同任務,其中可以參考The GAN Zoo,這個東西顧名思義就是GAN的動物園XD,底下列舉了非常多個GAN,目測可能200~300個,這串清單塞到今天的文章篇幅肯定會爆炸,所以就提起幾個常見的GAN就好了。

  • 3DGAN:前面介紹的GAN都是以平面圖片為主的,而這個GAN就是跳脫傳統的平面影像處理,使用雜訊來生成3D圖等。[原始論文]
  • Auxiliary Classifier GAN (ACGAN):ACGAN與GAN最大的不同是,ACGAN可以利用Label資料來生成指定類別的圖像,與CGAN類似,但同時也可以對圖像進行真假和所屬類別的判斷。這個GAN可以用來生成多分類的圖片、資料等。[原始論文]
  • Cycle-GAN:與Pix2Pix類似,但最大的好處是它不用考慮圖片資料是否有一對一對應。它可以實現不同圖片風格的轉換,其特點是要求原本的圖片在經過兩次風格轉換後要變回原本的圖片 (例如馬➝斑馬➝馬),以此保證風格轉換的迴圈一致性[原始論文]
  • InfoGAN:InfoGAN可以通過最大化相互資訊來學習可解釋和有意義的表徵。InfoGAN的目標函數包含了原始的GAN的目標函數和相互資訊的目標函數,前者用於生成真實的圖像,後者用於保留一部分隱變量和觀察值之間的關聯。InfoGAN可以用於生成不同姿勢、角度、表情等多種條件的圖像,是為更加細節的條件生成。[原始論文]
  • Self-Attention Generative Adversarial Network (SAGAN):SAGAN使用了自注意力機制 (Self-Attention),所以可以利用自注意力機制來建模圖像生成任務中的長距離依賴關係,與SRGAN不同,SAGAN是根據整個特徵圖中的全局訊息來生成高清圖細節,SAGAN也可以用於生成清晰、多樣化的圖像。[原始論文]
  • Spectral Normalization for Generative Adversarial Network (SNGAN):這個GAN為了解決訓練不穩定的問題,提出了一個譜正規化 (Spectral Normalization)的方式用以讓判別器可以訓練得更穩定,且計算量比較小。[原始論文]
  • SinGAN:這個在The GAN Zoo沒有收錄,但我曾經做過這個GAN,雖然最後沒有成功orz,但也從中學到了不少。SinGAN是用許多GAN組合的,首先將圖片分成許多小部分,而這些GAN會負責學習生成小部分的圖片,不同的GAN學習生成的圖片大小不同。它可以做圖像修復、或者將修圖痕跡與原圖融合等。[原始論文]
  • StackGAN:這個GAN也是很熱門的GAN,以往的GAN都是只訓練一次,而StackGAN由兩組甚至以上的GANs堆疊 (Stack)在一起故得名。StackGAN可以將文字作為輸入並得到高清的圖片,每個階段的GAN會生成不同解析度的圖片,最後慢慢將圖片解析度提高,最後輸出高清圖片,而此圖片會與輸入文字對應。[原始論文]
  • StarGAN:這與CycleGAN很像,但CycleGAN只能在兩個風格間轉換;而StarGAN則實現了多個風格的轉換。它使用了許多生成器一個判別器,生成器可以根據輸入圖像和目標風格的標籤生成對應的輸出圖像,判別器可以同時判斷圖像的真假和所屬風格。StarGAN可以使用多個資料集訓練,最終成果可以控制圖片輸出的屬性。[原始論文]
  • Triangle Generative Adversarial Networks (Δ-GAN):名字非常可愛的GAN,竟然直接使用ΔXD。它由四個神經網絡、兩個生成器和兩個判別器組成。在原始論文中的實驗考慮了圖像對應標籤、圖像對應圖像和圖像對應屬性。以及能夠做到半監督的圖像分類、圖像到圖像翻譯和基於屬性的圖像生成。[原始論文]
  • WGAN-GP:這個模型是WGAN再改良過後的模型,除了WGAN有的技術以外,還在損失函數中加入了一個梯度懲罰項,以保證判別器是一個1-Lipschitz函數,與WGAN不同點是不使用權重裁剪,使用梯度懲罰來改良這部分,讓生成效果更好。[原始論文]

GAN的訓練因任務類型而會有一些不同,所以除了了解所使用的GAN架構以外也常常需要對模型進行fine-tune,微調模型的一些細節以更能夠符合實際任務需求。否則有可能生成效果與原始論文效果有較大的差距。

https://ithelp.ithome.com.tw/upload/images/20230926/20151029YVn2azFWaE.png

結語

今天複習了一下前幾天介紹的GAN,也額外介紹了許多GAN。各位在選擇模型時沒有想法時可以參考看看The GAN Zoo,挑一個順眼的模型使用 (有些GAN並未提供GitHub程式碼連結),也希望各位在此不會遇到選擇障礙。今天算是將GAN做了一個結尾。明天開始要來介紹擴散模型了,請打起精神來一起面對擴散模型其恐怖的數學原理吧。

「學習是一種永無止境的過程,不管你有多聰明,總有更多的東西可以學。」


上一篇
[Day23]:想把圖片轉高清圖?使用SRGAN吧
下一篇
[Day25]:擴散模型之 DDPM 原理介紹以及數學公式推導
系列文
生成式AI到底何方神聖?一窺生程式AI的真面目31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言