轉自:https://zhuanlan.zhihu.com/p/26499443
生成對抗網絡GAN是由蒙特利爾大學Ian Goodfellow教授和他的學生在2014年提出的機器學習架構。
要全面理解生成對抗網絡,首先要理解的概念是監督式學習和非監督式學習。監督式學習是指基於大量帶有標簽的訓練集與測試集的機器學習過程,比如監督式圖片分類器需要一系列圖片和對應的標簽(“貓”,“狗”…),而非監督式學習則不需要這么多額外的工作,它們可以自己從錯誤中進行學習,並降低未來出錯的概率。監督式學習的缺點就是需要大量標簽樣本,這非常耗時耗力。非監督式學習雖然沒有這個問題,但准確率往往更低。自然而然地希望能夠通過提升非監督式學習的性能,從而減少對監督式學習的依賴。GAN可以說是對於非監督式學習的一種提升。
第二個需要理解的概念是“生成模型”, 如下圖所示生成圖片模型的概念示意圖。這類模型能夠通過輸入的樣本產生可能的輸出。舉個例子,一個生成模型可以通過視頻的某一幀預測出下一幀的輸出。另一個例子是搜索引擎,在你輸入的同時,搜索引擎已經在推斷你可能搜索的內容了。
基於上面這兩個概念就可以設計生成對抗網絡GAN了。相比於傳統的神經網絡模型,GAN是一種全新的非監督式的架構(如下圖所示)。GAN包括了兩套獨立的網絡,兩者之間作為互相對抗的目標。第一套網絡是我們需要訓練的分類器(下圖中的D),用來分辨是否是真實數據還是虛假數據;第二套網絡是生成器(下圖中的G),生成類似於真實樣本的隨機樣本,並將其作為假樣本。
詳細說明:
D作為一個圖片分類器,對於一系列圖片區分不同的動物。生成器G的目標是繪制出非常接近的偽造圖片來欺騙D,做法是選取訓練數據潛在空間中的元素進行組合,並加入隨機噪音,例如在這里可以選取一個貓的圖片,然后給貓加上第三只眼睛,以此作為假數據。
在訓練過程中,D會接收真數據和G產生的假數據,它的任務是判斷圖片是屬於真數據的還是假數據的。對於最后輸出的結果,可以同時對兩方的參數進行調優。如果D判斷正確,那就需要調整G的參數從而使得生成的假數據更為逼真;如果D判斷錯誤,則需調節D的參數,避免下次類似判斷出錯。訓練會一直持續到兩者進入到一個均衡和諧的狀態。
訓練后的產物是一個質量較高的自動生成器和一個判斷能力較強強的分類器。前者可以用於機器創作(自動畫出“貓”“狗”),而后者則可以用來機器分類(自動判斷“貓”“狗”)。
最后這里給出一個生成對抗網絡的列表。
參考資料
[1] https://www.linkedin.com/pulse/gans-one-hottest-topics-machine-learning-al-gharakhanian
[3] 深度 | 一篇文章帶你進入無監督學習:從基本概念到四種實現模型(附論文)