GAN,無監督深度學習新前景方法(1,2)

2021-08-27 08:36:36 字數 3159 閱讀 3690

撰寫本手冊,主要和大家來**gans這樣一種最具前景的無監督學習方法。 雖然生成對抗網路gans(generative adversarial networks)已經被提出來好幾年了,但我依然對它非常懷疑。儘管生成對抗網路已經在 64x64 解析度的影象上取得了巨大的進步,卻依然無法打消我的疑慮,於是,我開始閱讀了相關的數學書籍,我更加懷疑生成對抗網路事實上並沒有學習到資料分布。但是這一點在今年有所改觀,首先是新穎有趣的架構(如 cyclegan)的提出和理論性的提公升(wasserstein gan)促使我在實踐中嘗試了生成對抗網路,然後它們的效果還算可以,另外在兩次應用過生成對抗網路之後,我開始被它深深折服,並且開始堅信我們必須使用生成對抗網路進行物件生成。

gans的設計思想其實很簡單,它就是用兩個模型,乙個生成模型,乙個判別模型。判別模型用於判斷乙個給定的是不是真實的(判斷該是從資料集裡獲取的真實還是生成器生成的),生成模型的任務是去創造乙個看起來像真的一樣的。而在開始的時候這兩個模型都是沒有經過訓練的,這兩個模型一起對抗訓練,生成模型產生一張去欺騙判別模型,然後判別模型去判斷這張是真是假,最終在這兩個模型訓練的過程中,兩個模型的能力越來越強,最終達到穩定狀態。gans還可以學習模擬各種資料的分布,例如文字、語音和影象,因此在生成測試資料集時,它是非常有價值的。

如何構建gans的生成與判別式模型?它的重要原理又是怎樣的?它在資料生成、風格遷移和超解析度重建方面的表現到底如何呢?

**一、**判別式模型和生成式模型

1.1 判別式模型

判別式模型,即discriminative model,又被稱為條件概率模型,它估計的是條件概率分布(conditional distribution), p(class|context) 。

舉個例子,我們給定(x,y)對,4個樣本。(1,0), (1,0), (2,0), (2, 1),p(y|x)是事件x發生時y的條件概率,它的計算如下:

1.2 生成式模型

即generative model ,生成式模型 ,它估計的是聯合概率分布(joint probability distribution),p(class, context)=p(class|context)*p(context) 。p(x,y),即事件x與事件y同時發生的概率。同樣以上面的樣本為例,它的計算如下:

1.3 常見模型

常見的判別式模型有logistic regression,linear regression,svm,traditional neural networks

nearest neighbor,crf等。

常見的生成式模型有***** bayes,mixtures of gaussians, hmms,markov random fields等。

1.4 比較

判別式模型 ,優點是分類邊界靈活 ,學習簡單,效能較好 ;缺點是不能得到概率分布 。

生成式模型 ,優點是收斂速度快,可學習分布,可應對隱變數 ;缺點是學習複雜 ,分類效能較差。

上面是乙個分類例子,可知判別式模型,有清晰的分介面,而生成式模型,有清晰的概率密度分布。生成式模型,可以轉換為判別式模型,反之則不能。

**二、**gan,即generative adversarial net

它同時包含判別式模型和生成式模型,乙個經典的網路結構如下。

2.1 基本原理

gan的原理很簡單,它包括兩個網路,乙個生成網路,不斷生成資料分布。乙個判別網路,判斷生成的資料是否為真實資料。上圖是原理展示,黑色虛線是真實分布,綠色實線是生成模型的學習過程,藍色虛線是判別模型的學習過程,兩者相互對抗,共同學習到最優狀態。

2.2 優化目標與求解

下面是它的優化目標。

d是判別器,它的學習目標,是最大化上面的式子,而g是生成器,它的學習目標,是最小化上面的式子。上面問題的求解,通過迭代求解d和g來完成。

要求解上面的式子,等價於求解下面的式子。

其中d(x)屬於(0,1),上式是alog(y) + blog(1−y)的形式,取得最大值的條件是d(x)=a/(a+b),此時等價於下面式子。

如果用kl散度來描述,上面的式子等於下面的式子。

當且僅當pdata(x)=pg(x)時,取得極小值-log4,此時d=0.5,無法分辨真實樣本和假樣本。

直接從原始**中擷取偽**了,可見,就是採用判別式模型和生成式模型分別迴圈依次迭代的方法,與cnn一樣,使用梯度下降來優化。

2.4 gan的主要問題

gan從本質上來說,有與cnn不同的特點,因為gan的訓練是依次迭代d和g,如果判別器d學的不好,生成器g得不到正確反饋,就無法穩定學習。如果判別器d學的太好,整個loss迅速下降,g就無法繼續學習。

gan的優化需要生成器和判別器達到納什均衡,但是因為判別器d和生成器g是分別訓練的,納什平衡並不一定能達到,這是早期gan難以訓練的主要原因。另外,最初的損失函式也不是最優的,這些就留待我們的下篇再細講吧,下面欣賞一下gan的一些精彩的應用。

深度學習 1 有監督學習和無監督學習

什麼是人工智慧?人類用各種方式讓機器擁有與人類相仿的 智慧型 就是人工智慧。什麼是機器學習?機器學習就是實現人工智慧的一種方式。什麼是深度學習?深度學習就是實現機器學習的一種技術。為什麼要機器學習呢?你想啊,人類這麼聰明是為什麼,還不是因為在整個人類歷史中,人類不斷學習,所以才有現在的智慧型。既然要...

伯克利《深度無監督學習》課程資源分享

今天給大家推薦一門加州大學伯克利分校的新開課程cs294深度無監督學習。本課程將涵蓋深度學習中不需要標註資料的兩個領域 深度生成模型和自監督學習。生成模型的最新進展使得對自然影象 音訊波形和文字語料庫等高維原始資料進行真實建模成為可能。自監督學習的進步已經開始縮小監督表示學習和非監督表示學習之間的差...

無監督學習之降維方法 PCA,SNE,t SNE

pca降維是,假設投影後樣本點的方差最大。具體實現步驟是 1.用x表示原有資料 2.零均值化 3.求協方差矩陣 4.求特徵值和特徵向量 5.根據相應的特徵值把特徵向量從大到小排序,從組成的矩陣選取k行代表降維的基 k維 6.降維的基和原有資料x相乘,即為降維後的資料y pca是無監督模型。pca介紹...