GAN最新論文解讀
GAN Dissection: Visualizing and Understanding Generative Adversarial Networks
論文地址:
https://arxiv.org/pdf/1811.10597.pdf
GitHub code:https://github.com/CSAILVision/gandissect
首先要介紹的是第一篇,這篇文章的對於GAN的可解釋性研究有較大貢獻,我把它稱為可控GAN。主要看點在於,之前的GAN我們我們可以生成非常逼真的影象,雖然我們可以一定程度上選擇生成的多樣性,但是我們不能控制生成的物件裡面包括哪些,又包括哪些。因為我們不知道GAN裡面究竟是如何控制每個類別!
而這篇文章的方法不僅能夠控制是否包含某個類別,還能控制生成該類別的數量,如下圖所示:
從左到右,控制生成的樹的數量由多到少,直到一棵樹都沒有。這就是這篇文章的突破性的之處,這項研究向理解GAN邁出了非常重要的一步。
這是該文章的demo,大家可以自己體驗一下,它不僅可以控制生成什麼,不僅可以控制生成多少,還能控制生成的位置(我剛試時有點激動):
http://gandissect.res.ibm.com/ganpaint.html?project=churchoutdoor&layer=layer4
從視訊中可以看到,他可以做到增加某些類別,去除某些類別,也就是GAN已經成為可控的。想想真的有些激動(感覺應用前景很大,比傳統的P圖快太多,而且更逼真)。
上面介紹這篇文章方法的強大之處,下面介紹它是如何實現的。
具體實現分為兩個步驟:解剖(Dissection)和干預(Intervention),為每個類別尋找一套“因果”單元。
首先是第一個階段:解剖
看著上面的圖來講更直觀,整個結構的目的是找出特徵圖中,具體哪些通道和生成的某個類別的關係,而想要達到控制這個類的生成效果,那麼這個關係可以稱為因果關係。
更具體地,我們要找出生成圖X和特徵圖r的哪些通道有關。SC(X)是X的語義分割結果只取一個類,即為一個二值圖;
取特徵圖r的某一個通道(文中稱為單元),先進行上取樣恢復到原始影象尺寸,然後對其進行閾值處理以確定哪個畫素被該特定單元“點亮”。閾值通過下面這個公式計算:
得到了右上角的圖和右下角的二值圖,我們就可以衡量該通道的特徵和該類別的空間一致性。判別指標採用IOU:
V代表或運算,另一個是與運算,r(u,p)的箭頭指上取樣操作。
經過,第一階段解剖過程,我們知道哪些通道的特徵和類別的對應關係,接下來就是如何去幹預這個特徵,從而通過控制這些特徵控制生成。
第二個階段:干預