Semi-Supervised Learning with Generative Adversarial Networks
引言:本文將產生式對抗網絡(GAN)拓展到半監督學習,通過強制判別器來輸出類別標簽。我們在一個數據集上訓練一個產生式模型 G 以及 一個判別器 D,輸入是N類當中的一個。在訓練的時候,D被用於預測輸入是屬於 N+1的哪一個,這個+1是對應了G的輸出。這種方法可以用於創造更加有效的分類器,並且可以比普通的GAN 產生更加高質量的樣本。
將產生式模型應用於半監督學習並非一個新穎的idea,Kingma et al. 在NIPS 2014 就已經探索過此類方法。此處,我們嘗試着去做一些和GANs類似的事情,通過D學習到的feature可以在分類器中重復利用。這個表明了學習到的表示的有用性,但是其有幾種不需要的屬性:
1. 首先,通過D學到的表示可以幫助改進C並不奇怪---看起來這個很合理,並且應該是work的。然而,看起來學習好的C可以幫助改善D的性能。
2. 利用 D 學習到的表示不能同時訓練 C 和 G。
本文的motivation就是:如果通過改善 D可以改善C,並且改善 C 可以改進 D(which we know improves G)然后我們可以結合一些反饋循環的優勢,所有的3個成分都可以相互迭代的相互促進相互學習。
受到上述原因的啟發,本文的貢獻點主要有:
首先,提出將GANs進行拓展,允許其同時學習一個產生式模型和一個分類器。稱為:Semi-Supervised GAN, or SGAN.
第二,表明了 SGAN改善了分類性能。
第三,表明 SGAN 可以明顯的改善產生樣本的質量 和 減少訓練時間。
The SGAN Model :
判別器網絡 D 在常規的 GAN 輸出一個預測概率,表明輸入圖像是從數據產生器得來的概率。 通常是通過前向反饋網絡,后面跟着一個 single sigmoid unit, 但是也可以用一個 softmax output layer with one unit for each of the classes [real, fake]. 一旦這個改進完成,就可以看出,D 會有 N+1 個輸出單元,分別對應【class-1, class-2, class-N, fake】。在這種情況下,D 就扮演了 C 的角色,我們稱之為 D/C。
網絡的訓練主要還是 Min-Max 的過程:
我的感受:
這個文章左下角有標注:To appear in the Data Efficient Machine Learning workshop at ICML 2016. 篇幅較短,主要是考慮了將 GANs 應用於半監督圖像分類的思路。
考慮了三個成分:產生器 G,判別器 D,分類器 C 。
從上圖中產生的圖像來看,效果還是不錯的,分類的精度也有提升。
看來這種相互促進的網絡設計方法,值得我們參考和借鑒。
無網絡,不對抗!!!