CS231n學習筆記(十三):生成式模型(無監督學習)
有無監督學習對比
-
有監督學習
-
無監督學習
-
對比
生成式模型(Generative Models)
- PixelRNN/CNN(顯式密度估計)
- 變分自編碼器(Variational Autoencoder)(顯式密度估計)
- GAN(隱式密度估計)
PixelRNN/CNN(利用神經網絡顯式的計算最大似然函數)
-
PixelRNN
-
PixelCNN
-
pixelCNN訓練要比pixelRNN快,因爲在每一個像素位置,我們想要最大化我們已有的訓練數據的似然。
-
測試過程,也就是根據一個像素生成一整張圖片的過程都是非常慢的,因爲要一個一個像素的生成,最終形成一幅完整圖像
-
生成哪一種圖片,就取決於第一個像素點的大小選取(圖像其他所有像素的生成都將取決於它),以及訓練數據圖像。
-
缺點就是由於生成過程是序列化的,所以很慢
變分自編碼器(VAE)
- 自編碼器:是一種利用無標籤數據來學習低維特徵表示的無監督方法,如下圖,沒用用到外部標籤
-
利用自編碼器學習到的特徵可以初始化爲一個監督學習分類網絡,從而能夠利用少量的數據就能夠訓練好一個分類器
-
變分自編碼器(VAE)
-
**z爲特徵表示向量(也即隱變量:latent representation)
GAN(博弈論想法)
-
爲了讓生成器損失函數在一開始梯度大(從而讓開始優化更快),將優化函數修改爲最大化max,從而轉換爲梯度上升求最大,改變梯度趨勢,讓其實優化更快,但是總的目的不變,都是讓生成器最大化判別器判別的分數
-
GAN訓練算法
-
利用GAN中的z初始採樣特徵,做一些有趣的事情