1. 程式人生 > 其它 >GAN生成對抗網路的衡量指標

GAN生成對抗網路的衡量指標

本篇文章主要是生成對抗網路的衡量指標進行介紹,尤其是當生成對抗網路用於(醫學影象增強),我們應該用何等方法進行衡量。

常見的 GAN 衡量指標有視覺化檢視,以及定量數值分析 Inception Score(IS), Fréchet Inception Distance(FID) 等等方法。同時當GAN用於影象資料增強時,我們還可以將應用 GAN 生成圖片,對影象資料增強的效果作為衡量指標,比如用於 CT 資料增強時,使用分類器分類準確率的提高情況。下面對這幾種方法進行逐一介紹

1. GAN 生成圖片的視覺化檢視

生成對抗網路作為生成器中最為典型、且非常成功的一個網路,常常用於生成特定種類的圖片,常見的 GAN 網路效能衡量往往是檢視生成圖片的效果,如在 ACGAN 中,作者就給出了網路生成影象的資料,從中我們可以初略估計網路的效果:

同時進一步來看,我們還可以通過 Nearest Neighbor analysis 生成對抗網路是否過擬合,僅僅是對資料集中的圖片進行了記憶,而不是捕獲了圖片資料的分佈。

同時我們可以通過 latent space interpolation 進一步檢視過擬合,選取兩個 Noise 向量,然後在其中間插入一系列的點,檢視 GAN 生成圖片的關聯度,以及是否會出現含義不明確的圖片

但是 對於 Style GAN 而言, latent space inception 這一方法可能不太試用,因為 Style GAN 網路系列的訓練方法不同,但是針對 StyleGAN 的 Style 和 Noise 部分,我們往往可以做 Style Mixing 和 Noise 不同層之間的去除操作。


StyleMixing 進行檢視網路效果


Noise 影響的方法檢視


新增 Noise 與否的區別

2. Inception Score(IS)

\(\quad\) Inception Score 是 生成對抗網路之父 Ian J. Goodfellow 於 2016 年在Improved Techniques for Training GANs 論文中提出。因使用人工打分衡量圖片生成質量的好壞,極容易受到人為主觀因素的影響(尤其是存在反饋時),而且過於消耗資源。因此作者提出了 Inception Score。

\(\quad\) Inception Score,簡稱 IS,他的計算方法主要如下所示:
首先,我們選取一個網路模型Model,作者 Ian 選取的是 Inception Model,這也是 Inception Score 名稱的由來(但事實上,你幾乎可以選擇任意一個model

),將 Inception Model 在訓練資料集(也可以是訓練資料集+驗證資料集+測試資料集)進行訓練,得到訓練完成的模型
然後,我們使用 GAN 網路生成的一系列圖片,暫且稱之為 fake_images
然後我們使用預訓練的模型 Inception Model 去判斷生成對抗網路生成的每一張圖片 fake_image,當 Inception model 預測 每一張 fake_image 為低熵的時候,也就是其中某一個類別 \(p(y_i|\bold {x})\)有著很大的概率時候,Inception Model預測該圖片置信度高,我們便認為該圖片有著很高的生成質量。同時,我們還希望圖片有著較高的多樣性,也就是說我們希望 fake_images 的種類均衡,比如說 GAN 生成5個類別,那麼最好生成的 fake_image 中五個類別各佔有 20% 的比例,\(\int p(y|\bold x=G(z)) {\rm d}z\) 有著高熵,也就是說每一個類別 \(\int p(y_i|\bold x=G(z)) {\rm d}z\) 概率都要儘可能相等,分佈均勻,也就是說多樣性儘可能的好

通知,為了方便定量分析,Ian 將衡量圖片生成質量和圖片多樣性的指標合二為一,記為 \(\exp ({\rm E}_x {\rm \bold {KL}}(p(y|\bold x)||p(y)))\), KL 表示 KL divergence \(D_{KL}(P||Q)=\sum P(x)log(\frac{P(x)}{Q(x)})\),用於衡量兩個分佈之間的距離, \(p(y|\bold x)\)\(p(y)\) 都是關於 \(y\) 變數的分佈,我們希望他們之間的距離越大越好,即 Inception Score 越大越好。

當我們 GAN 網路生成的圖片為單一類別的時候,\(\int p(y|\bold x=G(z)) {\rm d}z\) 便無法衡量圖片的多樣性。但是我們仍然可以使用 \(p(y_i|\bold {x})\)來衡量圖片生成的質量,比如,我們進行人臉檢測過程中,可以使用 人臉檢測的置信度,來作為 \(p(y_i|\bold {x})\),可以近似的將圖片中存在可識別人臉,和圖片中不存在可識別人臉看作是兩個類別。但是,顯然,不能將兩個類別用於評估圖片生成多樣性,因為這根本不是我們需要的圖片多樣性。

實驗中,Ian 發現 IS 衡量指標和人們主觀判斷有著一致性,是生成對抗網路非常好的衡量方法。

3. Fréchet Inception Distance(FID)

Fréchet Inception Distance,簡稱 FID 也是衡量生成影象的多樣性和質量的重要方法,相比於 Inception Score, FID 更注重於圖片生成多樣性的審查, Inception Score 更注重於圖片生成質量,因此兩者常常搭配使用。
和 Inception Score 相比,計算FID中同樣使用Inception network網路,當然可以是任意網路,因此此處 Inception Score 所起到的作用僅僅是提取特徵,通過判斷原始圖片資料集 (real_images) 和生成圖片資料集 (fake_images) 在特徵空間上分佈的距離,來衡量 GAN 生成圖片的質量以及多樣性,衡量特徵空間上 特徵分佈的距離,數學上往往使用 Wasserstein-2 distance 或 Frechet distance。

假設,我們從 Inception Model 中提取了 n 維特徵,我們假設 real_images 在 n 維度特徵上的分佈均值為\(\mu_r\),協方差為\(\sum_r\),fake_images 在 n 維度特徵上的分佈均值為\(\mu_f\),協方差為\(\sum_f\),那麼 FID計算公式為
\({\rm FID}(real, fake)=||\mu_r-\mu_f||_2^2+{\rm Tr}(\sum_r+\sum_f-2(\sum_r \sum_f)^{\frac {1}{2}})\), 公式中 Tr 表示矩陣對角線上元素的總和,也稱為 跡(trace)

較低的FID意味著兩個分佈之間更接近,也就意味著生成圖片的質量較高、多樣性較好。 FID對模型坍塌更加敏感。相比較IS來說,FID對噪聲有更好的魯棒性。因為假如只有一種圖片時,FID這個距離將會相當的高。因此,FID更適合描述GAN網路的多樣性。

4. 分類器效能提高情況

\(\quad\),以生成對抗網路用於醫學影象資料增強為例,假設我們使用 GAN 來生成疾病 A 的影象,來增強圖片資料,提高分類器疾病監測的準確性。那麼,最為可靠的方法就是通過分類器效能的提升,來判斷圖片資料增強的效果,也就是 GAN 網路的質量。
首先,我們使用 訓練完成的 GAN 網路,生成 fake_images 資料集,將 fake_image 資料集併入到用於疾病分類的網路 DenseNet (也可以是其他網路,如 ResNet 等等)訓練集中,通過對比資料增強前,和資料增強後 DenseNet 進行病灶分類的 accuracy, precision, recall, f1-score 等等指標,來定量分析使用 GAN 網路進行醫學影象資料增強的效果。

參考文獻

Improved Techniques for Training GANs. Tim Salimans, Ian J. Goodfellow. 2016
【深度理解】如何評價GAN網路的好壞?IS(inception score)和FID(Fréchet Inception Distance)
如何求協方差矩陣
協方差矩陣是什麼_協方差矩陣計算公式_如何計算協方差矩陣

How to Implement the Frechet Inception Distance (FID) for Evaluating GANs