Star-GAN阅读笔记
Star-GAN閱讀筆記
- Summary
- Contribution
- Related Work
- Approach and Model Architecture
- Implement
- Experiments
- Code
Summary
之前傳統的GAN只能在兩個域之間做圖像轉換(例如Cycle-GAN),如果要在多個域之間做圖像轉換,則需要N(N-1)對生成器/鑒別器。然而Star-GAN僅使用一個生成器/判別器,就完成了多個域之間的圖像轉換,它的訓練單元為[圖像, 域標簽],訓練數據集為擁有多標簽的同一數據集(甚至可以多個數據集)。
Contribution
- 提出了StarGAN,這是一種新型的生成對抗網絡,它僅使用一個生成器和一個鑒別器就可以從所有域的圖像進行有效訓練,從而學習多個域之間的映射。
- 演示了如何利用掩碼向量方法成功地學習多個數據集之間的多域圖像翻譯,該方法使StarGAN能夠控制所有可用域標簽。
- 提供有關使用StarGAN進行面部屬性轉移和面部表情合成任務的定性和定量結果,顯示其優于基準模型的優勢。
Related Work
- 生成對抗網絡
- 條件生成對抗網絡
- 圖像到圖像的翻譯
Approach and Model Architecture
作者開門見山,先給了個結果圖
對于方法部分,作者原文一句話講得挺明白的:我們的生成器沒有學習固定的翻譯,而是將圖像和領域信息都作為輸入,并學會了將圖像靈活地翻譯為相應的領域。也就是說,訓練的數據為[圖像, 域標簽]。其中“領域”可以由one-hot vector或者二進制表示。
作者展示了Star-GAN與傳統多域方法的對比圖
作者提出的Star-GAN訓練了從輸入圖像x到c域輸出圖像y的一個生成器,其中這個c域是隨機產生的,這可以使得圖像x到各個域都能夠輕松轉換
作者介紹了損失函數
- 鑒別器的損失函數
- 對抗損失函數 Ladv=Ex[log?Dsrc(x)]+Ex,c[log?(1?Dsrc(G(x,c)))]\mathcal{L_{adv}}= \mathbb{E}_x[\log D_{src}(x)]+ \mathbb{E}_{x,c}[\log (1-D_{src}(G(x,c)))]Ladv?=Ex?[logDsrc?(x)]+Ex,c?[log(1?Dsrc?(G(x,c)))]
- 域分類損失函數 Lclsr=Ex,c′[?log?Dcls(c′∣x)]\mathcal{L_{cls}^r}=\mathbb{E}_{x,c'}[-\log D_{cls}(c'|x)]Lclsr?=Ex,c′?[?logDcls?(c′∣x)]
- 最終損失 LD=?Ladv+λclsLclsr\mathcal{L_D}=-\mathcal{L}_{adv}+\lambda_{cls}\mathcal{L}_{cls}^rLD?=?Ladv?+λcls?Lclsr?
- 生成器的損失函數
- 對抗損失函數 Ladv=Ex[log?Dsrc(x)]+Ex,c[log?(1?Dsrc(G(x,c)))]\mathcal{L_{adv}}= \mathbb{E}_x[\log D_{src}(x)]+ \mathbb{E}_{x,c}[\log (1-D_{src}(G(x,c)))]Ladv?=Ex?[logDsrc?(x)]+Ex,c?[log(1?Dsrc?(G(x,c)))]
- 域分類損失函數 Lclsf=Ex,c[?log?Dcls(c∣G(x,c))]\mathcal{L_{cls}^{f}}=\mathbb{E}_{x,c}[-\log D_{cls}(c|G(x,c))]Lclsf?=Ex,c?[?logDcls?(c∣G(x,c))]
- 重構損失 Lrec=Ex,c,c′[∣∣x?G(G(x,c),c′)∣∣1]\mathcal{L}_{rec}=\mathbb{E}_{x,c,c'}[||x-G(G(x,c),c')||_1]Lrec?=Ex,c,c′?[∣∣x?G(G(x,c),c′)∣∣1?]
- 最終損失 LG=Ladv+λclsLclsf+λrecLrec\mathcal{L_G}=\mathcal{L}_{adv}+\lambda_{cls}\mathcal{L}_{cls}^f+\lambda_{rec}\mathcal{L}_{rec}LG?=Ladv?+λcls?Lclsf?+λrec?Lrec?
作者在實驗中設定了λcls=1\lambda_{cls}=1λcls?=1以及λrec=10\lambda_{rec}=10λrec?=10。
值得一提的時,Star-GAN跟Cycle-GAN的損失函數其實是幾乎一致的:對抗損失約束D和G,循環一致性(重構損失)約束G,不用的是Star-GAN多了一個約束D,G的“域分類損失函數”,由于Cycle-GAN只有兩個域,所以不需要這個。
對于ccc,由于在不同數據集,標簽會有所缺失,作者提出了one-hot和二進制的表示方法,其中c^=[c1,...,cn,m]\hat{c}=[c_1,...,c_n,m]c^=[c1?,...,cn?,m]cic_ici?是一個二進制數,代表第iii個數據集標簽的情況,相當于是一個狀壓的向量,對于沒有其他數據集標簽的圖像,那些對應數據集的ccc為000即可。在訓練生成器的過程中,生成器會忽略未指定的標簽,轉而著重訓練顯示給定標簽上。對于鑒別器的輔助分類器,分類器僅對有標簽的那個數據集的所有標簽的分類錯誤降到最低,不關注其他數據集標簽。
Implement
這篇論文是在WWW-GANGANGAN提出之后的,所以其對抗損失函數
Ladv=Ex[log?Dsrc(x)]+Ex,c[log?(1?Dsrc(G(x,c)))]\mathcal{L_{adv}}= \mathbb{E}_x[\log D_{src}(x)]+ \mathbb{E}_{x,c}[\log (1-D_{src}(G(x,c)))]Ladv?=Ex?[logDsrc?(x)]+Ex,c?[log(1?Dsrc?(G(x,c)))]
被改進為
Ladv=Ex[Dsrc(x)]?Ex,c[DsrcG(x,c)]?λg,pEx^[(∣∣▽x^Dsrc(x^)∣∣2?1)2]\mathcal{L_{adv}}=\mathbb{E}_x[D_{src}(x)]-\mathbb{E}_{x,c}[D_{src}G(x,c)]-\lambda_{g,p}\mathbb{E}_{\hat{x}}[(||\bigtriangledown_{\hat{x}}D_{src}(\hat{x})||_2-1)^2]Ladv?=Ex?[Dsrc?(x)]?Ex,c?[Dsrc?G(x,c)]?λg,p?Ex^?[(∣∣▽x^?Dsrc?(x^)∣∣2??1)2]
具體原理是啥來著,自動編碼生成器遵循KL距離,生成對抗網絡遵循JS散度,它們都存在一個問題:當隨機初始的分布和真實分布不重疊時,KL距離和JS散度無法有效衡量“距離”,所以找不出優化方向,失去導數。而Wasserstein距離能夠克服這個問題。
λgp\lambda_{gp}λgp?根據經驗設定為10。
網絡結構方面,Star-GAN也沿用了Cycle-GAN的大體結構,值得注意的是,Pix2pix-GAN在生成器上選用了UNet結構,鑒別器上選用了PatchGAN結構,Cycle-GAN以及這篇提出的Star-GAN都繼承了這個傳統。
Experiments
Star-GAN比較對象有DIAT、Cycle-GAN、IcGAN,它們都能實現多個域之間圖像轉換,有的可能只能兩個域互相轉換,但是在每兩個域間使用就可以實現多個域轉換。本次比較實驗在CelebA和RaFD數據集上進行,它們都是比較權威的人臉數據集。
在CelebA數據集實驗對比如下
定量評估方式也是AMT,一個人工評價的平臺,結果從單屬性和多屬性指標上看起來是Star-GAN遠遠領先
在RaFD數據集實驗對比如下
在四個模型中測試不同表情生成情況如下,Star-GAN顯示出了最自然的表情。作者認為,StarGAN在圖像質量上的優勢是由于其來自多任務學習設置的隱式數據增強效果。 RaFD圖像包含相對較小的樣本大小,例如每個域500張圖像。在兩個域上進行訓練時,DIAT和CycleGAN一次只能使用1000張訓練圖像,而StarGAN可以在所有可用域中總共使用4000張圖像進行訓練。這使StarGAN可以正確學習如何保持生成的輸出的質量和清晰度。
定量評估方面,作者使用ResNet-18在RaFD數據集上進行表情分類的訓練,再用這個訓練好的網絡來測試四種網絡生成表情圖像的分類精度,以此來定量評估生成表情的真實性,結果是Star-GAN生成的表情判錯率最少。
Star-GAN還有一個優點就是對于多域的圖像轉換問題,其只需要一個生成器和一個鑒別器對,十分節省模型參數。
在CelebA和RaFD數據集實驗對比如下
SNG表示在RaFD數據集上訓練,JNT表示在CelebA和RaFD數據集上聯合訓練,結果表明聯合訓練比單獨訓練效果好,因而可以使用聯合訓練改善少數據單獨訓練的生成效果。
作者為了證明掩碼即x^\hat{x}x^確實起到了作用,進行了如下對比實驗:第一組掩碼設定RaFD即控制包清的數據集,第二組則是設定CelebA即跟表情無關數據集。
實驗證明,在掩碼控制表情數據集時生成效果很好,掩碼控制非表情數據集時,會改變該數據集中的屬性而不是表情屬性。作者采用的one-hot以及二進制狀壓確實起到了應該有的作用。
Code
Star-GAN的代碼主要參考了。。。未完待續
總結
以上是生活随笔為你收集整理的Star-GAN阅读笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GAN for Image-to-ima
- 下一篇: java short比较_Java Sh