李宏毅機器學習2016 第十五講 無監督學習 生成模型之 VAE
視頻鏈接:李宏毅機器學習(2016)_演講?公開課_科技_bilibili_嗶哩嗶哩
課程資源:Hung-yi Lee
課程相關PPT已經打包命名好了:鏈接:https://pan.baidu.com/s/1c3Jyh6S 密碼:77u5
我的第十四講筆記:李宏毅機器學習2016 第十四講 深度自編碼器
Unsupervised Learning : Generation
本章主要講解了無監督學習中的生成模型方法。
1.生成模型(Generative Models)
「What I cannot create, I do not understand.」 ——Richard Feynman
生成模型的想法是希望機器能夠自己主動去生成,去創造。
2.PixelRNN
此方法主要是用到RNN,例如要生成一張3*3的圖,可以一次生成一個像素,再將其組合起來就可以得到要求的圖。此方法能夠被大量沒有標註的圖像進行訓練。
上圖先隨機得到一個像素點值(橙色),將其作為輸入用一個RNN網路輸出了一個藍色的像素點;接著用原來的橙色點和生成的藍色點,兩個點作為輸入,用RNN網路輸出另外一個淺藍色的點;接著用這已有的三個點作為輸入,再重複之前的步驟......直到得到完整的圖。
3.Variational AutoEncoder(VAE)
在第十四講,了解了自編碼器的知識,最初想法是可以利用解碼器,隨機產生一個code作為輸入向量,來產生圖像,但是效果並不理想。
VAE的想法是通過對編碼器的輸出做出改變,如下圖所示。
假設code維度是三維。編碼器的輸出m1、m2、m3是原始code,σ1、σ2、σ3視為添加的雜訊的方差,這是自動學習的,通過指數操作保證非負,e1、e2、e3是係數。得到的新的code是帶雜訊的。
如果在學習時,僅僅最小化重構誤差會怎樣呢?顯然,雜訊方差為0就能使得誤差最小,但這和我們的想法不一致。所以在上圖右下方,在學習時不僅要最小化重構誤差也要最小化該公式的值。
VAE為什麼work?一種直覺的想法是,其是加上雜訊了的。比如上圖中,要在一張滿月圖和半月圖中生成一張圖,加上了雜訊後,能夠使得在很大範圍內都是月亮的圓和半圓的形狀,所以能夠在一定程度上保證在其中間的生成圖是介於兩者之間的。
其主要數學原理是高斯混合模型(Gaussian Mixture Model)。
VAE的問題是其實VAE並沒有想過怎樣去生成一張新圖,而是在產生一張與資料庫中的圖儘可能相似的圖,只是在模仿。上圖中一個像素點的不同在原始的「7」圖上,左邊的可以理解,但是右圖是不一樣的,是假的,但是VAE會認為說其與原始目標是一致的。
VAE並沒有生成新圖,而是僅僅記住了已經存在了的圖。
4.總結
本章主要講述了兩種生成模型的方法:PixelRNN以及Variational AutoEncoder(VAE)。
並講述了其原理及優缺點。
推薦閱讀:
※從Nesterov的角度看:我們為什麼要研究凸優化?
※想學習「機器學習」,需要學習哪些先導課程?
※目標檢測(5)-Faster RCNN
※Udacity的納米學位 (Nano degree)怎麼樣?
※論文導讀 | TFX:基於TensorFlow可大規模擴展的機器學習平台