天天看點

Cycle-GAN 模型介紹----原理簡介

背景:

Cycle-GAN是一個2017年推出的直擊産業痛點的模型。衆所周知,在一系列視覺問題上是很難以找到比對的高品質圖像作為target來供模型學習的,比如在超分辨領域内對于一個低分辨率的物體圖像,未必能找到同樣場景的高分辨率圖像,這使得一系列深度學習模型的适應性有限。上述的困難總結起來就是:由于模型訓練時必須依賴比對的圖像,而除非有目的的去産生這樣的圖像否則無法訓練,并且很容易造成資料有偏。

Cycle-GAN訓練的目的則避開了上述困難;該模型的思路是旨在形成一個由資料域A到資料域B的普适性映射,學習的目标是資料域A和B的風格之間的變換而非具體的資料a和b之間的一一映射關系。從這樣的思路出發Cycle-GAN對于資料一一比對的依賴性就不存在了,可以解決一系列問題,是以該模型的設計思路與具體做法十分值得學習。

總的來說,基于Cycle-GAN的模型具有較強的适應性,能夠适應一系列的視覺問題場合,比如超分辨,風格變換,圖像增強等等場合。

下面附一張比對和非比對圖像的說明

Cycle-GAN 模型介紹----原理簡介

設計思路:

通常的GAN的設計思路從資訊流的角度出發是單向的,如下圖所示:使用Generator從a産生一個假的b,然後使用Determinator判斷這個假的b是否屬于B集合,并将這個資訊回報至Generator,然後通過逐次分别提高Generator與Discriminator的能力以期達到使Generator能以假亂真的能力,這樣的設計思路在一般有比對圖像的情況下是合理的。

Cycle-GAN 模型介紹----原理簡介

而在Cycle-GAN為了能不依賴一一對應的圖像,需要確定學習到的映射不能将不同的a1、a2、...映射為同一個b,盡管這個b确實可以達到以假亂真的結果。為了防止這種情況Cycle-GAN引入了cycle概念,簡單來說就是将假的b映射回A,産生一個假的a1,并判斷這假的a1是否同真的a1近似,用這樣的方式來確定模型真正能學習到一對一的映射而不是一對多。這個思路來自于機器翻譯鄰域[1], 具體說來如下圖所示:

Cycle-GAN 模型介紹----原理簡介

在模型中定義兩個變換G、F,分别表示從輸入域X到目标域Y的變換和逆變換,并且使用Dx和Dy來分辨判斷F和G的效果,在使用Dx和Dy的同時,引入兩個cycle過程,第一個cycle過程(圖中b),是指使用真實的x産生一個估計的y,再使用這個估計的y進行逆變換産生一個估計的x,此時評價真實的x和這個估計的x的差别,同樣的Y到X的過程也引入這樣的cycle過程(圖中c)

整個網絡過程可以如下所示:來自于(https://www.jianshu.com/p/64bf39804c80),這裡GeneratorAtoB和GeneratorBtoA以及discriminatorA和discriminatorB的網絡結構兩兩相同[2]

Cycle-GAN 模型介紹----原理簡介

loss函數:

loss函數的組成最能反映這種設計思路,Cycle-GAN的loss總體來說可以分為兩部分,一部分是GAN loss,一部分是Cycle loss

Cycle-GAN 模型介紹----原理簡介

具體的表現形式是

Cycle-GAN 模型介紹----原理簡介
Cycle-GAN 模型介紹----原理簡介

上述是作者論文中提出的初始版本,在代碼裡面使用的是MSELoss[3]

訓練注意事項:

為了保證訓練出的模型具有較強的穩定性,使用了兩種技術:第一,基于前人的成果将GAN loss變為非負的似然計算改為最小平方loss[4], 第二,使用了GAN訓練的“記憶”技術,即在更新Discriminator時使用先期存儲的資料而非剛剛由Generator産生資料[5]。 另外具體的訓練細節可以參考下一篇部落格 對于Cycle-GAN的代碼介紹

參考資料:

[1]. R. W. Brislin. Back-translation for cross-cultural research. Journal of cross-cultural psychology, 1(3):185–216, 1970.

[2]. https://github.com/vanhuyz/CycleGAN-TensorFlow.git

[3]. https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

[4]. Multiclass generative adversarial networks with the l2 loss function. arXiv preprint arXiv:1611.04076, 2016.

[5]. A. Shrivastava, T. Pfister, O. Tuzel, J. Susskind, W. Wang, and R. Webb. Learning from simulated and unsupervised images through adversarial training. arXiv preprint arXiv:1612.07828, 2016. 

繼續閱讀