【GAN优化】长文综述解读如何定量评价生成对抗网络(GAN)
歡迎大家來到《GAN優化》專欄,這里將討論GAN優化相關的內容,本次將和大家一起討論GAN的評價指標。
作者&編輯 | 小米粥
編輯 | 言有三
在判別模型中,訓練完成的模型要在測試集上進行性能測試,然后使用一個可以量化的指標來表明模型訓練的好壞,例如最簡單的,使用分類準確率評價分類模型的性能,使用均方誤差評價回歸模型的性能。同樣在生成模型GAN上也需要一個評價指標來量化GAN的生成效果。
1.?評價指標的要求
用于評價生成模型GAN優劣的指標不可能是任意的,它應當盡可能考慮一些要求。這里列出幾條比較重要的要求:
(1) 能生成更為真實樣本的模型應當得到更好的分數,也就是可評價樣本的生成質量
(2)能生成更具有多樣性樣本的模型應當得到更好的分數,也就是可以評價GAN的過擬合、模式缺失、模式崩潰、簡單記憶(即GAN只是簡單記憶了訓練數據集)等問題,即多樣性。
(3)對于GAN的隱變量z,若有比較明確的“意義”且隱空間連續,那么可控制z得到期望的樣本,這樣的GAN應該得到更好的評價。
(4)有界性,即評價指標的數值最好具有明確的上界、下界。
(5)GAN通常被用于圖像數據的生成,一些對圖像的變換并不改變語義信息(例如旋轉),故評價指標對某些變換前后的圖像不應有較大的差別。
(6)評價指標給出的結果應當與人類感知一致。
(7)計算評價指標不應需要過多的樣本,不應有較大的計算復雜性。考慮到實際情況,這些要求往往都不能同時得到滿足,各個不同的指標也是各有優缺。
2. IS系列
2.1 Inception Score
Inception Score指標適用于評價生成圖像的GAN。評價指標首先要評價GAN生成圖像的質量好壞,但是圖像質量是一個非常主觀的概念,不夠清晰的寵物狗的圖片和線條足夠明晰但“很奇怪”的圖片均應算作低質量的圖片,但計算機不太容易認識到這個問題,最好可以設計一個可計算的量化指標。
IS(Inception Score)采用了這樣的做法,將生成的圖片x送入已經訓練好Inception模型,例如Inception Net-V3,它是一個分類器,會對每個輸入的圖像輸出一個1000維的標簽向量y,向量的每一維表示輸入樣本屬于某類別的概率。假設我們的Inception Net-V3訓練得足夠好,那么對質量高的生成圖像x,Inception Net-V3可將其以很高的概率分類成某個類,分類器輸出y的數值比較集中,形如[0.9,...,0.02,0]。我們可以使用熵來量化該指標,分布p(y|x)相對于類別的熵定義為
其中,p(yi|x)表示x屬于第i類的概率,即yi值,為了避免歧義,計算方式展示如下圖所示:
熵是一種混亂程度的度量,對于質量較低的輸入圖像,分類器無法給出明確的類別,其熵應比較大,而對于質量越高的圖像,不確定性減少,其熵應當比較小,當p(y|x)為one-hot分布時,熵達到最小值0。
IS考慮的另一個度量指標即樣本的多樣性問題,若GAN產生的一批樣本{x1,x2,...,xn}多樣性比較好,則標簽向量{y1,y2,...,yn}的類別分布也應該是比較均勻的,也就是說不同類別的概率基本上是相等的(當然這里要假設訓練樣本的類別是均衡的),則其均值應趨向均勻分布,如下圖所示。
又因為
故可使用標簽向量y關于類別的熵來定量描述,若生成樣本的多樣性好(涵蓋的類別多),則p(y)相對于類別的熵越大;生成樣本的多樣性差,則p(y)相對于類別的熵越小,其中定義p(y)相對于類別的熵為
其中,p(yi)表示第i類的概率,即yi值。
將圖像質量和多樣性兩個指標綜合考慮,可以將樣本和標簽的互信息I(x,y)設計為生成模型的評價指標,互信息描述了給定一個隨機變量后,另一個隨機變量的不確定性減少程度。又被稱為信息增益,即?
又根據
KL散度表示兩個分布的差值,當KL散度值越大時,表示兩個分布的差異越大;KL散度值越小,分布的差異越小,對所有樣本,計算KL散度求平均,本質上來講,指標還是通過信息增益來評價。為了便于計算,添加指數,最終的IS定義成如下形式:
實際計算IS時,使用的計算式子為:
對于p(y)的經驗分布,使用生成模型產生N個樣本,將N個樣本送入分類器得到N個標簽向量,對其求均值且令
對于KL散度,計算方式如下:?
2.2 IS的缺陷
IS作為GAN的評價指標,自2016年提出以來,已經具備了比較廣泛的接受程度,但也有一些不可忽略的問題和缺陷。(1)當GAN發生過擬合時,生成器只“記住了”訓練集的樣本,泛化性能差,但是IS無法檢測到這個問題,由于樣本質量和多樣性都比較好,IS仍然會很高。(2)由于Inception Net-V3是在ImageNet上訓練得到的,故IS會偏愛ImageNet中的物體類別,而不是注重真實性。GAN生成的圖片無論如何逼真,只要它的類別不存在于ImageNet中,IS也會比較低。(3)若GAN生成類別的多樣性足夠,但是類內發生模式崩潰問題,IS無法探測。(4)IS只考慮生成器的分布pg而忽略數據集的分布pdata。(5)IS是一種偽度量。(6)IS的高低會受到圖像像素的影響。以上這些問題限制了IS的推廣,接下來我們列出幾種IS的改進版本。
2.3 Mode Score
MS(Mode Score)是IS的改進版本,考慮了訓練數據集的標簽信息,其定義為:
其中,p*(y)表示經過訓練數據集的樣本得到的標簽向量的類別概率,p(y )表示經過GAN生成樣本得到的標簽向量的類別概率。MS關注的還是樣本質量與種類多樣性的問題,可以證明其與IS是等價的。
2.4?Modifified Inception Score
m-IS(Modifified Inception Score)重點關注了類內模式崩潰的問題,例如使用ImageNet訓練好的GAN可以均勻生成1000類圖像,但是在每一類中,只能產生一種圖像,也就是生成的蘋果圖像永遠張一個樣子,但是GAN的生成質量和類別多樣性是完全沒有問題的。m-IS對于同一類樣本的標簽計算了交叉熵:
其中xi,xj均為同一類別的樣本,其類別由Inception Net-V3的輸出結果決定。將類內交叉熵考慮進IS可得m-IS,即
可以看出,m-IS評價的是GAN的生成質量和類內多樣性。當m-IS分數越大時,GAN生成性能越好。
2.5?AM Score
AMS(AM Score)的考慮是:IS假設類別標簽具有均勻性,在1000類圖像中,生成模型GAN生成每一類的概率是大致相等的,故可使用y相對于類別的熵來量化該項,但當訓練數據在類別分布中不均勻時,IS評價指標是不合理的,更為合理的選擇是計算訓練數據集的類別標簽分布與生成數據集的類別標簽分布的KL散度,即
其中,p*(y)表示經過訓練數據集的樣本得到的標簽向量的類別概率,p(y )表示經過GAN生成樣本得到的標簽向量的類別概率,關于樣本質量的一項保持不變,則AMS的表達式為:
顯然,當AMS分數越小時,GAN生成性能越好。
在所有IS系列的評價指標中,務必要保持一致性。也就是說,若使用ImageNet訓練GAN,那么評價GAN所需要的分類器(如Inception V3)也必須是在ImageNet上訓練的,否則無效。
3.?FID
FID(Fréchet Inception Distance)是一種評價GAN的指標,于2017年提出,它的想法是這樣的:分別把生成器生成的樣本和判別器生成的樣本送到分類器中(例如Inception Net-V3或者其他CNN等),抽取分類器的中間層的抽象特征,并假設該抽象特征符合多元高斯分布,估計生成樣本高斯分布的均值μg和方差Σg,以及訓練樣本的均值μdata和方差Σdata?,計算兩個高斯分布的弗雷歇距離,此距離值即FID:
最后將FID作為評價指標。示意圖如下,其中虛線部分表示中間層
FID的數值越小,表示兩個高斯分布越接近,GAN的性能越好。實踐中發現,FID對噪聲具有比較好的魯棒性,能夠對生成圖像的質量有比較好的評價,其給出的分數與人類的視覺判斷比較一致,并且FID的計算復雜度并不高,雖然FID只考慮了的樣本的一階矩和二階矩,但整體而言,FID還是比較有效的,其理論上的不足之處在于:高斯分布的簡化假設在實際中并不成立。
4. MMD
MMD(Maximum Mean Discrepancy)在遷移學習中具有非常廣泛的應用,它是在希爾伯特空間中對兩個分布的差異的一種度量,故可以考慮使用MMD度量訓練數據集分布 pdata和生成數據集分布pg的距離,然后使用這個距離作為GAN的評價指標。若MMD距離越小,則表示pdata和pg越接近,GAN的性能越好。
計算MMD時,首先選擇一個核函數K(x,y) ,它將兩個樣本映射為一個實數,例如多項式核函數:
高斯核函數?:
則MMD距離為:
不過實際計算時,我們不可能遍歷所有樣本求期望,而需要使用批量樣本估計MMD值,對于來自于訓練樣本集的n個樣本x1,x2,...,xn和來自于生成器生成的n個樣本y1,y2,...,yn,MMD的估算值為:
由于MMD是使用樣本估計的,即使pdata和pg完全相同,估算得到MMD也未必等于零。MMD在評價GAN時表現還是比較好的,并且計算復雜度也不高。
5.?Wasserstein Distance
Wasserstein距離又稱earth-mover距離、推土機距離,與MMD類似,它也是兩個分布的差異的一種度量,故也可以作為GAN的評價指標。若Wasserstein距離越小,則表示pdata和pg越接近,GAN的性能越好。在性能優越的WGAN中,便是先通過判別器(critic)學習兩個分布的Wasserstein距離,再以最小化Wasserstein距離為目標函數來訓練生成器的。
當把Wasserstein距離作為評價指標時,需要先有一個已經訓練好的判別器D(x),對于來自于訓練樣本集的n個樣本x1,x2,...,xn和來自于生成器生成的n個樣本y1,y2,...,yn,Wasserstein距離的估算值為:
這個評價指標可以探測到生成樣本的簡單記憶情況和模式崩潰情況。不過需要注意,由于使用Wasserstein距離作為評價指標需要依賴判別器和訓練數據集,故它只能評價使用特定訓練集訓練的GAN,例如對使用蘋果圖像訓練集訓練得到判別(critic),它無法評價橘子圖像生成器的性能,故也具有一定的局限性,這與MMD有著明顯區別,MMD不需要通過神經網絡學習分布間的距離,擁有更大的自由。
6.?1-Nearest Neighbor Classifier
1-Nearest Neighbor Classifier的基本想法是,希望計算判定出pdata和pg是否相等,若相等則證明生成模型GAN是優秀的,若差距比較大則說明GAN是比較差的。做法如下,對于來自于訓練樣本集概率分布pdata的n個樣本x1,x2,...,xn和來自于生成器概率分布pg的n個樣本y1,y2,...,yn,計算使用1-NN的LOO(leave-one-out)的準確率,并使用準確率作為評價指標。
具體地說,將x1,x2,...,xn和y1,y2,...,yn以及它們對應的標簽組合成新的樣本集合D,D里共包括2n個樣本,使用留一交叉驗證的方法,將D中的樣本分成兩份D1和D2,D1有2n-1個樣本, D2只有一個樣本,使用D1訓練1-NN二分類器,在D2中進行驗證計算正確率(0%或100%)。每次D2選擇不同的樣本,將上述過程循環2n次,計算總體的分類正確率,并將總體正確率作為GAN的評價指標。
如果x1,x2,...,xn和y1,y2,...,y來自于同一概率分布(即pdata等于pg),且樣本數量比較大,則1-NN分類器無法將其很好的分開,其結果接近于隨機猜測,總正確率接近50%,如下圖所示:
當GAN發生簡單記憶的問題,即生成器生成的樣本與訓練樣本完全一樣,則任意測試樣本在1-NN上的正確率都為0%,因為存在一個與測試樣本距離為0的樣本,但兩者的類別標簽相反,故總體正確率為0%,如下圖所示:
極端的情況,當生成器生成樣本與訓練集樣本差異很大時,即GAN生成效果很不好時,任意測試樣本在1-NN上的正確率都為100%,因為1-NN完全可以進行準確的分類,則整體準確率也為100%,如下圖所示:
當1-Nearest Neighbor Classifier的總正確率接近50%時,說明生成器的性能越好。另外說明,這里選擇1-NN作為二分類器的原因是,1-NN結構簡單,計算方便且不含任何超參數。
7.?GANtrain and GANtest
在GANtrain和GANtest中,并沒有設計給出可量化的評價指標,而是計算幾個指標并進行對比分析,從而評價GAN的性能,這里評價的是可生成多類別樣本的GAN。
定義訓練樣本集St,驗證集Sv以及由GAN生成的樣本集 Sg,接下來(1)在訓練集St上訓練分類器并在驗證集Sv上計算準確率,將準確率記為GANbase。(2)在生成集Sg上訓練分類器并在驗證集Sv上計算準確率,將準確率記為GANtrain。(3)在訓練集St上訓練分類器并在生成集Sg上計算準確率,將準確率記為GANtest。
比較GANbase和GANtrain,當GAN存在問題時,GANtrain要小于GANbase,可能因為生成集Sg相比訓練集St發生了模式丟失,或者生成樣本不足夠真實讓分類器學到相關特征,或者GAN沒有將類別分得很開,產生類別混合等,原因可能有很多。當GANtrain與GANbase接近時,說明GAN生成圖像質量高,和訓練集有相似的多樣性。
比較GANbase和GANtest,理想情況下,兩者數值應該接近。如果GANtest非常高,那么說明GAN過擬合,發生簡單記憶的問題。如果GANtest很低,則說明GAN沒有很好的數據集分布,圖像質量不高。GAN-test準確率大致衡量了生成圖像和數據流形的距離的遠近。
8. NRDS
NRDS(Normalized Relative Discriminative Score)可以用于多個GAN模型的比較,其基本的想法是:實踐中,對于訓練數據集和GAN生成器生成的樣本集,只要使用足夠多的epoch,總可以訓練得到一個分類器C,可以將兩類樣本完全分開,使得對訓練數據集的樣本,分類器輸出趨于1,對GAN生成的樣本,分類器輸出趨于0。但是,若兩類樣本的概率分布比較接近(即GAN生成效果比較好),則需要更多次數的epcoh才能將兩類樣本完全區分開;反之,對于較差的GAN生成效果,不需要訓練分類器C多少次epoch,就可將兩類樣本完全分開。
如上圖所示,在每個epoch中,對于n個GAN,分別從其中采樣得到n批生成樣本(虛假樣本),將其與訓練集樣本(真實樣本)以及對應的標簽一起送入分類器C,然后使用分類器分別在n批虛假樣本上測試,記錄n個分類器的輸出結果output(結果應為批次的平均值)。訓練足夠多的epoch次數,使分類器對真實樣本輸出幾乎為1,對虛假樣本輸出幾乎為0,這時對n個GAN,做n條epoch-output曲線,分別記為Ci,估算曲線下圍成的區域的面積,分別記為A(Ci),如下圖陰影部分
最后分別計算NRDS:
則NRDS的值越大,說明將兩個分布完全分開的“損耗”越大,則表明對應的GAN的pg更接近pdata。??
9.?Image Quality Measures
在該類評價指標中,我們直接對圖像本身的質量進行量化,而不像IS借助Inception V3或訓練其他神經網絡等手段,這里已經提出不少相關指標,典型代表有SSIM, PSNR和Sharpness Difference。
9.1 Structural SIMilarity
SSIM(Structural SIMilarity)是對兩個圖像樣本x和y之間的亮度l(x,y)、對比度c(x,y) 、結構s(x,y)三個方面進行比較衡量,可理解為一個描述了兩幅圖像相似度的評價指標,其中亮度為:
對比度為:
結構為:
其中,μx,μy,σx,σy,σxy分別為x,y的局部均值、方差和協方差。而C1,C2,C3是為了避免除數為0而取的常數,一般地,可取
計算整幅圖像的SSIM值可計算每個圖像塊的SSIM求平均。SSIM具有對稱性,當兩個圖像完全相同時,SSIM值達到最大值1。
9.2 Peak Signal-to-Noise Ratio
PSNR(Peak Signal-to-Noise Ratio)即峰值信噪比,也用于評價圖像質量,例如可在條件GAN中,可將某類別中訓練集里的圖像與條件生成的圖像進行對比評價,從而評價條件GAN的生成效果。
例如對兩幅圖像I和K ,計算其均方誤差:
然后計算峰值信噪比為:
其中,MAX為圖片可能的最大像素值,例如灰度圖像中為255。若為彩色圖像,可計算RGB三通道的PSNR然后取均值;或計算三通道MSE并除以3,再計算PSNR。顯然,PSNR值越大,說明兩張圖像差別越小,則生成的圖像的質量越好。
9.3 Sharpness Difference
SD(Sharpness Difference)與PSNR計算方式類似,但其更關注銳度信息的差異。例如對兩幅圖像I和K ,計算其銳度差異:
其中,
然后計算SD為:?
其中,MAX為圖片可能的最大像素值,與上述相同。顯然,SD值越大,說明兩張圖像銳度差別越小,則生成的圖像的質量越好。
10.?Average Log-likelihood
之前提到的方法,我們都將生成器視為一個產生樣本的黑盒子,并沒有直接與去概率密度函數pg打交道,這也是由于GAN的隱式概率模型的設計機制決定的。但如果能有一個pg的表達式,最直接的評價指標應當是:計算訓練集的樣本在pg下的對數似然函數(也可認為是計算KL散度,兩者等價),對數似然函數越大則說明生成器越好,如下
這里的問題在于,如何得到pg的表達式或者近似表達式?一種方法是使用非參數估計的,例如使用KDE(Kernel Density Estimation)方法,對于樣本x1,x2,...,xn,估計得到的概率密度函數p*為:
Z為歸一化常數,其中核函數可定義為高斯核函數、均勻核函數、三角核函數等,自由選取。得到近似的概率密度函數后,便可計算對數似然,并使用其作為評價指標。
但是根據實際情況,其評價效果并不理想,主要有如下問題:面臨高維分布,非參數難以得到比較準確的概率密度函數的估計,另外對數似然函數與樣本的質量并不存在明顯的相關關系,有些不好的GAN可以給出很高的對數似然值但樣本質量依舊很差。
在這篇中,我們展示了五花八門的GAN評價指標,實際上還有更多,我們僅僅展示了一部分。根據實驗的比較結果,并沒有存在哪一個評價指標在各方面都可以完勝其他評價指標,也不存在哪一個指標可以在第一篇文章中提出的7個要求中都得到很好的滿足,但是也確實存在部分指標的整體質量完全超越另一個的情況。故在選擇GAN的評價指標時,應根據實際場景要求選擇指標,或者組合選擇幾個指標從不同角度考察GAN的生成效果。
[1]Bissoto A , Valle E , Avila S . The Six Fronts of the Generative Adversarial Networks[J]. 2019.
[2]Borji A . Pros and cons of GAN evaluation measures[J]. Computer Vision and Image Understanding, 2018.
[3]A Note on the Evaluation of Generative Models.2016
總結
這一篇講解了GAN的評價指標應該滿足的要求,并重點講解了IS的計算方式以及IS的其他改進,FID,MMD和Wasserstein, Distance1-Nearest Neighbor Classifier,GANtrain和GANtest,NRDS,SSIM,PSNR,SD,對數似然評價指標等,并在最后對GAN的評價指標做了簡單的評述。
如何系統性學習GAN
有三AI公眾號輸出了大量的GAN相關的內容,關于如何系統性學習GAN,請大家參考往期文章。
【雜談】如何系統性地學習生成對抗網絡GAN
在有三AI知識星球網絡結構1000變中包含大量GAN的各類應用和實戰相關的內容,一些案例如下,感興趣可以深入學習了解。
轉載文章請后臺聯系
侵權必究
往期精選
【雜談】有三AI知識星球最近都GAN了哪些內容?
【雜談】GAN對人臉圖像算法產生了哪些影響?
【完結】12篇GAN的優化文章大盤點,濃濃的數學味兒
總結
以上是生活随笔為你收集整理的【GAN优化】长文综述解读如何定量评价生成对抗网络(GAN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【总结】循序渐进,有三AI不得不看的技术
- 下一篇: 【文本信息抽取与结构化】深入了解关系抽取