【大組會整理】深度生成模型可視化劉世霞深度生成網絡可視化

這篇博客的目的是對此次組會自己感興趣的地方和不懂得地方進行一個梳理,供自己梳理知識點使用。

1、兩個深度生成模型:GAN和VAE(Variational autoencoder)
參考博客:http://geek.csdn.net/news/detail/230599,這篇博客中還貼出了兩個github的代碼用來進行GAN和VAE實戰,先放在這裏,以後用到的話拿來細究。
首先簡單說一下判別模型和生成模型。
判別模型的形式主要是根據原始圖像推測圖像具備的一些性質,例如根據數字圖像推測數字的名稱,根據自然場景圖像推測物體的邊界。這些模型大多有下面的規律:已知觀察變量X,和隱含變量z,判別式模型對p(z|X)進行建模,它根據輸入的觀察變量x得到隱含變量z出現的可能性。
而生成模型恰恰相反,通常給出的輸入是圖像具備的性質,而輸出是性質對應的圖像。生成式模型則是將兩者的順序反過來,它要對p(X|z)進行建模,輸入是隱含變量,輸出是觀察變量的概率。
判別模型用來解決判別問題,生成模型用來解決分佈估計等問題(比如隨機生成滿足某些隱含變量特點的數據)。對於一些簡單的判別問題也可以用生成模型解決,中間用貝葉斯公式過渡。
這裏寫圖片描述
**然後**VAE,簡單來說就是個編碼反編碼的過程。這裏不做過多介紹。
2、KL(Kullback-Leible)散度(又稱相對熵、交叉熵、鑑別信息、Kullback熵)介紹
參考博客:http://blog.csdn.net/acdreamers/article/details/44657745
首先要明白什麼是信息熵,然後才能明白什麼是KL散度。
信息熵反應了一個系統的有序化程度,一個系統越是有序,那麼它的信息熵就越低,反
之就越高。下面是熵的定義
這裏寫圖片描述
KL散度:
這裏寫圖片描述
3、訓練網絡時根據可視化數據分析問題
這裏寫圖片描述
從右邊的這張圖:我們自己要看出幾個問題:
(1)訓練數據之間的內聚性很差(這個是做手繪的網絡,就算是一個類呢,他裏面千奇百怪的圖像也很抽象)
(2)這個模型很明顯,訓練訓練就傾向於過擬合(對比左邊的圖像,你會發現,人家的測試誤差和訓練誤差,基本上貼的很緊,說明,訓練出來的模型,再加新來的測試圖片,還是很穩定很強)
(3)就是我們的訓練數據特別少了。
還有一種情況是損失函數無窮大的時候,有兩種解決辦法:換損失函數或者進行Batch Normalization。
4、網絡可視化途徑
1)snapshot:單snapshot/雙snapshot
2)神經元之間的可視化:全連接層權重矩陣-》卷積層感受野
4、Instability of Momentum-Based Optimizers
按照性能由低到高排序:SGD隨機梯度下降、Momentum梯度下降、AdaGrad梯度下降、RMSProp梯度下降 、Adam梯度下降 。
其中基於動量的:
Adam
Momentum
基於學習率的:
SGD
AdaGrad
RMSProp
基於動量的方法,就是步子大速度快,即使錯了,我還能大步的跨回來,因爲我的模型是通過實打實的參數W確定的,解是解是近似唯一的;
但是這對於GAN來說就不行了,生成模型的綁定不是靠具體的實數,而是一個概率模型,還有一些採樣過程。所以說呢,一旦你這個優化跑過頭了,要費很大勁回來,或者直接就失敗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章