一、目的
提出一個基於GAN的網絡框架來學習發現跨域關系(cross-domain relation),把尋找這種關系變成了用一種風格的圖片生成另一種風格。
下面是論文列舉的手提包生成鞋、鞋生成手提包的示意圖。
二、模型
標准的GAN模型
圖中xA、xB分別表示A里面和B里面的真實樣本,xAB表示真實樣本xA經生成器GAB生成的樣本。
標准的GAN模型很容易發生模式崩潰。
帶有重建損失的GAN模型
GAB表示域A到域B的生成器,GBA表示域B到域A的生成器。為了找到有意義的對應關系,需要將這個映射限制成一對一映射,意思就是說,GAB和GBA應該是剛好相反的映射。對於所有的A里面的真實樣本xA,GAB(xA)都要在B里面,對於GBA(xB)也一樣。
基於前面所提出的一對一映射,對於所有的A里面的真實樣本xA,GAB(xA)都要在B里面,這相當於要滿足GBA(GAB(xA))=xA這個條件,但是這個條件很難優化,於是改為最小化距離d(GBA(GAB(xA)),xA),這個d可以是L1,L2等等的度量函數。
生成器的損失函數如下:
生成器GAB收到兩個損失,一個是重建損失(reconstruction loss),描述經過兩個生成器之后的重建效果與原始真實樣本的差距,另外一個是原始GAN的生成損失,表示GAB生成的樣本來自B的逼真性。
判別器的損失如下:
D表示相應域的判別器。
相對於原始的GAN模型,這里的重建約束雖然迫使重建樣本與原始的一樣,但是這仍然會導致類似的模式崩潰問題。
(a)是我們理想的映射,一對一的;(b)是原始GAN的結果,A中的多個模式映射到了B中的一個模式,就是模式崩潰的情況;(c)是加入了重建損失的GAN,A中兩個模式的數據都映射到了B中的一個模式,而B中一個模式的數據只能映射到A中這兩個模式中的一個。重建損失使得模型在(c)中的兩個狀態之間震盪,而並不能解決模式崩潰問題。
對(c)的解釋:當出現模式崩潰時,重建損失強制要求重建樣本和原來的樣本一樣,所以會在DomainA中兩個模式之間震盪。
DiscoGAN
為了解決模式崩潰的問題,就要使得不管是GAB還是GBA,不同模式生成出來的就應該是不同的,於是很自然地想到了對稱結構,就是再加一個反過來的生成網絡,迫使A和B中的數據一一對應。
模型中包含兩個生成器GAB,這兩個GAB是一樣的,還有兩個生成器GBA,這兩個也是一樣的。這樣就實現了一對一的映射。
損失函數如下:
網絡結構:
三、實驗
toy實驗
首先為了證明所提出的這種對稱模型對於模式崩潰問題的良好性能,做了一個演示實驗。A和B中的數據都是二維的,真實樣本都取自混合高斯模型。用3個線性層和一個ReLU激活層作為生成器,判別器用5個線性層,每層后面接一個ReLU層,最后再接一個sigmoid層將輸出限定在[0,1]之間。
彩色背景表示判別器的輸出值,”x”表示B種不同的模式。(a)標示了10個目標模式和最初的轉換結果;(b)是標准的GAN迭代40000次的結果;(c)是加入重建損失的網絡迭代40000次的結果;(d)是文章提出的DiscoGAN迭代40000次后的結果。標准GAN的許多不同顏色的轉換點都位於B相同的模式下,海藍和淺藍色的點離得很近,橙色和綠色的點也在一起,多種顏色的點(A中的多種模式)都映射到B的同一種模式下。帶有重建損失的GAN的模式崩潰問題已經不那么嚴重了,但是海藍、綠色和淺藍色的點仍然會在少數幾個模式上重疊。標准的GAN和帶有重建損失的GAN都沒有覆蓋B中的所有模式,DiscoGAN將A中的樣本轉換為B中有邊界不重疊的區域,避免了模式崩潰,並且產生的B樣本覆蓋了所有10種模式,因此這個映射是雙射,從A轉換的樣本也把B的鑒別器個騙過了。
轉換實驗
汽車到汽車,人臉到人臉,性別轉換(a,b),頭發顏色轉換(c),是否戴眼鏡轉換(d),先轉換性別再轉換頭發顏色(e),頭發顏色、性別來回轉(f),椅子到汽車,汽車到人臉
輪廓和圖像互轉