轉載:https://zhuanlan.zhihu.com/p/109342043
這里僅當記錄筆記
作者:小米粥
最近一部分的內容將會比較容易,將和大家一起討論GAN的評價指標。在判別模型中,訓練完成的模型要在測試集上進行測試,然后使用一個可以量化的指標來表明模型訓練的好壞,例如最簡單的,使用分類准確率評價分類模型的性能,使用均方誤差評價回歸模型的性能。同樣在生成模型上也需要一個評價指標來量化GAN的生成效果。
1. 評價指標的要求
用於評價生成模型GAN優劣的指標不可能是任意的,它應當盡可能考慮一些要求。這里列出幾條比較重要的要求:(1)能生成更為真實樣本的模型應當得到更好的分數,也就是可評價樣本的生成質量(2)能生成更具有多樣性樣本的模型應當得到更好的分數,也就是可以評價GAN的過擬合、模式缺失、模式崩潰、簡單記憶(即GAN只是簡單記憶了訓練數據集)等問題,即多樣性。(3)對於GAN的隱變量 ,若有比較明確的“意義”且隱空間連續,那么可控制
得到期望的樣本,這樣的GAN應該得到更好的評價。(4)有界性,即評價指標的數值最好具有明確的上界、下界。(5)GAN通常被用於圖像數據的生成,一些對圖像的變換並不改變語義信息(例如旋轉),故評價指標對某些變換前后的圖像不應有較大的差別。(6)評價指標給出的結果應當與人類感知一致。(7)計算評價指標不應需要過多的樣本,不應有較大的計算復雜性。考慮到實際情況,這些要求往往都不能同時得到滿足,各個不同的指標也是各有優缺。
2. IS系列
2.1 Inception Score
Inception Score指標適用於評價生成圖像的GAN。評價指標首先要評價GAN生成圖像的質量好壞,但是圖像質量是一個非常主觀的概念,不夠清晰的寵物狗的圖片和線條足夠明晰但“很奇怪”的圖片均應算作低質量的圖片,但計算機不太容易認識到這個問題,最好可以設計一個可計算的量化指標。
IS(Inception Score)采用了這樣的做法,將生成的圖片 送入已經訓練好Inception模型,例如Inception Net-V3,它是一個分類器,會對每個輸入的圖像輸出一個1000維的標簽向量
,向量的每一維表示輸入樣本屬於某類別的概率。假設我們的Inception Net-V3訓練得足夠好,那么對質量高的生成圖像
,Inception Net-V3可將其以很高的概率分類成某個類,即標簽向量
的數值比較集中,形如
。我們可以使用熵來量化該指標,分布
相對於類別的熵定義為:
其中, 表示
屬於第
類的概率,即
值,為了避免歧義,計算方式展示如下圖所示:
熵是一種混亂程度的度量,對於質量較低的輸入圖像,分類器無法給出明確的類別,其熵應比較大,而對於質量越高的圖像,其熵應當越小,當為one-hot分布時,熵達到最小值0。
IS考慮的另一個度量指標即樣本的多樣性問題,若GAN產生的一批樣本 多樣性比較好,則標簽向量
的類別分布也應該是比較均勻的,也就是說不同類別的概率基本上是相等的(當然這里要假設訓練樣本的類別是均衡的),則其均值應趨向均勻分布如下圖所示。
又因為
故可使用標簽向量 關於類別的熵來定量描述,若生成樣本的多樣性好(涵蓋的類別多),則
相對於類別的熵越大;生成樣本的多樣性差,則
相對於類別的熵越小,其中定義
相對於類別的熵為
其中, 表示第
類的概率,即
值。
將圖像質量和多樣性兩個指標綜合考慮,可以將樣本和標簽的互信息 設計為生成模型的評價指標,互信息描述了給定一個隨機變量后,另一個隨機變量的不確定性減少程度。又被稱為信息增益,即
在不知道 前,邊緣分布
相對於類別的熵比較大,標簽
(可能接近均勻分布)不確定程度比較大;當給定
后,條件分布
相對於類別的熵會減小,標簽
的不確定性降低(可能接近one-hot分布),不確定程度會減少,並且其差值越大,說明樣本的質量越好。根據
其中,KL散度表示兩個分布的差值,當KL散度值越大時,表示兩個分布的差異越大;KL散度值越小,分布的差異越小,計算所有樣本的KL散度求平均,但是本質上來講,還是通過信息增益來評價。為了便於計算,添加指數項,最終的IS定義成如下形式:
實際計算IS時,使用的計算式子為:
對於 的經驗分布
,使用生成模型產生
個樣本,將
個樣本送入分類器得到
個標簽向量,對其求均值且令
對於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只考慮生成器的分布 而忽略數據集的分布
。(5)IS是一種偽度量。(6)IS的高低會受到圖像像素的影響。以上這些問題限制了IS的推廣,接下來我們列出幾種IS的改進版本。
2.3 Mode Score
MS(Mode Score)是IS的改進版本,考慮了訓練數據集的標簽信息,其定義為:
其中, 表示經過訓練數據集的樣本得到的標簽向量的類別概率,
表示經過GAN生成樣本得到的標簽向量的類別概率,MS同樣考慮了生成樣本的質量與多樣性的問題,不過可以證明其與IS是等價的。
2.4 Modifified Inception Score
m-IS(Modifified Inception Score)重點關注了類內模式崩潰的問題,例如使用ImageNet訓練好的GAN可以均勻生成1000類圖像,但是在每一類中,只能產生一種圖像,也就是生成的蘋果圖像永遠張一個樣子,但是GAN的生成質量和類別多樣性是完全沒有問題的。m-IS對於同一類樣本的標簽計算了交叉熵:
其中 均為同一類別的樣本,其類別由Inception Net-V3的輸出結果決定。將類內交叉熵考慮進IS可得m-IS,即
可以看出,m-IS評價的是GAN的生成質量和類內多樣性。當m-IS分數越大時,GAN生成性能越好。
2.5 AM Score
AMS(AM Score)的考慮是:IS假設類別標簽具有均勻性,生成模型GAN生成1000類的概率是大致相等的,故可使用 相對於類別的熵來量化該項,但當數據在類別分布中不均勻時,IS評價指標是不合理的,更為合理的選擇是計算訓練數據集的類別標簽分布與生成數據集的類別標簽分布的KL散度,即
其中, 表示經過訓練數據集的樣本得到的標簽向量的類別概率,關於樣本質量的一項保持不變,則AMS的表達式為:
顯然,當AMS分數越小時,GAN生成性能越好。
3. FID
FID(Fréchet Inception Distance)是一種評價GAN的指標,於2017年提出,它的想法是這樣的:分別把生成器生成的樣本和判別器生成的樣本送到分類器中(例如Inception Net-V3或者其他CNN等),抽取分類器的中間層的抽象特征,並假設該抽象特征符合多元高斯分布,估計生成樣本高斯分布的均值 和方差
,以及訓練樣本
和方差
,計算兩個高斯分布的弗雷歇距離,此距離值即FID:
最后將FID作為評價指標。示意圖如下,其中虛線部分表示中間層
FID的數值越小,表示兩個高斯分布越接近,GAN的性能越好。實踐中發現,FID對噪聲具有比較好的魯棒性,能夠對生成圖像的質量有比較好的評價,其給出的分數與人類的視覺判斷比較一致,並且FID的計算復雜度並不高,雖然FID只考慮的樣本的一階矩和二階矩,但整體而言,FID還是比較有效的,其理論上的不足之處在於:高斯分布的簡化假設在實際中並不成立。
4. MMD
MMD(Maximum Mean Discrepancy)在遷移學習中具有非常廣泛的應用,它是在希爾伯特空間對兩個分布的差異的一種度量,故可以考慮使用MMD度量訓練數據集分布 和 生成數據集
的距離,然后使用這個距離作為GAN的評價指標。若MMD距離越小,則表示
和
越接近,GAN的性能越好。
計算MMD時,首先選擇一個核函數 ,它將兩個樣本映射為一個實數,例如多項式核函數:
高斯核函數 :
則MMD距離為:
不過實際計算時,我們不可能求期望,而需要使用樣本估計MMD值,對於來自於訓練樣本集的 個樣本
和來自於生成器生成的
個樣本
,MMD的估算值為:
由於MMD是使用樣本估計的,即使 和
完全相同,估算得到MMD也未必等於零。
5. Wasserstein Distance
Wasserstein距離又稱earth-mover距離、推土機距離,與MMD類似,它也是兩個分布的差異的一種度量,故也可以作為GAN的評價指標。若Wasserstein距離越小,則表示 和
越接近,GAN的性能越好。在性能優越的WGAN中,便是先通過判別器(critic)學習兩個分布的Wasserstein距離,再以最小化Wasserstein距離為目標函數來訓練生成器的。
當把Wasserstein距離作為評價指標時,需要先有一個已經訓練好的判別器 ,對於來自於訓練樣本集的
個樣本
和來自於生成器生成的
個樣本
,Wasserstein距離的估算值為:
這個評價指標可以探測到生成樣本的簡單記憶情況和模式崩潰情況,並且計算比較快捷方便。不過需要注意,由於使用Wasserstein距離作為評價指標需要依賴判別器和訓練數據集,故它只能評價使用特定訓練集訓練的GAN,例如對使用蘋果圖像訓練集訓練得到判別(critic),它無法評價橘子圖像生成器的性能,故也具有一定的局限性。
6. 1-Nearest Neighbor Classifier
1-Nearest Neighbor Classifier的基本想法是,希望計算判定出 和
是否相等,若相等則證明生成模型GAN是優秀的,若差距比較大則說明GAN是比較差的。做法如下,對於來自於訓練樣本集概率分布
的
個樣本
和來自於生成器概率分布
的
個樣本
,計算使用1-NN的LOO(leave-one-out)的准確率,並使用准確率作為評價指標。
具體地說,將 和
以及它們對應的標簽組合成新的樣本集合
,
里共包括
個樣本,使用留一交叉驗證的方法,將
中的樣本分成兩份
和
,
有
個樣本,
只有一個樣本,使用
訓練1-NN二分類器,在
中進行驗證計算正確率(0%或100%)。每次
選擇不同的樣本,將上述過程循環
次,計算總體的分類正確率,並將准確率作為GAN的評價指標。
如果 和
來自與同一概率分布(即
),且樣本數量比較大,則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。
定義訓練樣本集 ,驗證集
以及由GAN生成的樣本集
,接下來(1)在訓練集
上訓練分類器並在驗證集
上計算准確率,將准確率記為GANbase。(2)在生成集
上訓練分類器並在驗證集
上計算准確率,將准確率記為GANtrain。(3)在訓練集
上訓練分類器並在生成集
上計算准確率,將准確率記為GANtest。
比較GANbase和GANtrain,當GAN存在問題時,GANtrain要小於GANbase,可能因為生成集 相比訓練集
發生了模式丟失,或者生成樣本不足夠真實讓分類器學到相關特征,或者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中,對於 個GAN,分別從其中采樣得到
批生成樣本(虛假樣本),將其與訓練集樣本(真實樣本)以及對應的標簽一起送入分類器C,然后使用分類器分別在
批虛假樣本上測試,記錄
個分類器的輸出結果output(結果應為批次的平均值)。訓練足夠多的epoch次數,使分類器對真實樣本輸出幾乎為1,對虛假樣本輸出幾乎為0,這時對
個GAN,做
個epoch-output曲線,分別記為
,估算曲線下圍成的區域的面積,
如下圖所示:
分別記為 ,最后分別計算NRDS:
則NRDS的值越大,說明將兩個分布完全分開的“損耗”越大,則表明對應的GAN的 更接近
。
9. Image Quality Measures
在該類評價指標中,我們直接對圖像本身的質量進行量化,而不像IS借助Inception V3或訓練其他神經網絡等手段,這里的典型代表有SSIM, PSNR and Sharpness Difference。
9.1 SSIM
SSIM(Structural SIMilarity)是對兩個圖像樣本 和
之間的亮度
、對比度
、結構
三個方面進行比較衡量,可理解為一個描述了兩幅圖像相似度的評價指標,其中亮度為:
對比度為:
結構為:
其中, 分別為
的局部均值、方差和協方差。而
為了避免除數為0而取的常數,一般地,可取
其中, 默認為0.01,
默認為0.03,
為像素值的范圍。計算時,可依次在圖像上取
大小的以
或
為中心的圖像塊,計算三個參數並求解
整幅圖像的SSIM計算每個圖像塊的SSIM求平均即可。SSIM具有對稱性,當兩個圖像完全相同時,SSIM值達到最大值1。
9.2 PSNR
PSNR(Peak Signal-to-Noise Ratio)即峰值信噪比,也用於評價圖像質量,例如可在條件GAN中,可將某類別中訓練集里的圖像與條件生成的圖像進行對比評價,從而評價條件GAN的生成效果。
例如對兩幅圖像 和
,計算其均方誤差:
然后計算峰值信噪比為:
其中, 為圖片可能的最大像素值,例如灰度圖像中為255。若為彩色圖像,可計算RGB三通道的PSNR然后取均值;或計算三通道MSE並除以3,再計算PSNR。顯然,PSNR值越大,說明兩張圖像差別越小,則生成的圖像的質量越好。
9.3 SD
SD(Sharpness Difference)與PSNR計算方式類似,但其更關注銳度信息的差異。例如對兩幅圖像 和
,計算其銳度誤差:
其中,
然后計算SD為:
其中, 為圖片可能的最大像素值與上相同。顯然,SD值越大,說明兩張圖像銳度差別越小,則生成的圖像的質量越好。
10. Average Log-likelihood
之前提到的方法,我們都將生成器視為一個產生樣本的黑盒子,並沒有直接與去概率密度函數 打交道,這也是由於GAN的設計機制決定的。但如果能有一個
的表達式,最直接的評價指標應當是:計算訓練集的樣本在
下的對數似然函數(也可認為是計算KL散度),對數似然函數越大則說明生成器越好,如下
這里的問題在於,如何得到 的表達式或者近似表達式?一種方法是使用非參數估計的,例如使用KDE(Kernel Density Estimation)方法,對於樣本
,估計得到的概率密度函數
為:
為歸一化常數,其中核函數可定義為高斯核函數、均勻核函數、三角核函數等自由選取。得到近似的概率密度函數后,便可計算對數似然,並使用其作為評價指標。但是根據實際情況,其評價效果並不理想,主要有如下問題:面臨高維分布,非參數難以得到比較准確的概率密度函數的估計,另外對數似然函數與樣本的質量並不存在明顯的相關關系,GAN可以給出很高的對數似然值但樣本質量依舊很差。
在三篇小文中,我們展示了五花八門的GAN評價指標,實際上還有更多,我們僅僅展示了一部分。根據實驗的比較結果,並沒有存在哪一個評價指標在各方面都可以完勝其他評價指標,也不存在哪一個指標可以在第一篇文章中提出的7個要求中都得到很好的滿足,但是也確實存在部分指標的質量完全超越另一個的情況。故在選擇GAN的評價指標時,應根據實際場景要求選擇指標,或者選擇幾個指標從不同角度考察GAN的生成效