深度學習與神經網絡(十三)—— Auto-Encoder自編碼神經網絡

自動編碼器,也就是自編碼神經網絡,是神經網絡的一種

採用無監督學習的方式對高維數據進行高效的特徵提取和特徵表示,在學術界和工業界都大放異彩

 

 

我們之前看的都是監督學習

但是生活中的大量的數據都是沒有label的

現在來看非監督學習

 

 

機器學習領域的三大方向

強化學習(櫻桃)、監督學習(蛋糕的外皮)、非監督學習

 

 

爲什麼需要非監督學習?

降維

利用大量的無標籤數據

 

 

https://projector.tensorflow.org/

 

 

Auto-Encoders

監督學習是有一個明確的目標的,那麼非監督學習也是有目標的

目標就是重建它自己

與CNN不同的在於,CNN的輸出層是分類,如果是十分類輸出層就有10個節點。但無監督網絡就無法分類,其目標就是重建自己,所以輸出層的節點數=輸入層的節點數

自編碼神經網絡就是一個特殊的全連接層

neck可以升維也可以降維,大部分是降維

 

怎樣訓練

還是原來那些方法

自編碼神經網絡還是神經網絡,所以training還是看loss function

 

 

 

PCA vs AutoEncoder

PCA,principal components analysis,主成分分析

在auto-encoder之前,降維都是用PCA降維

但是PCA具有線性特性,大部分的數學形態都是非線性的,線性變化很可能能操作的空間就非常少

可以看到autoencoder的效果還是好於PCA的

 

 

AutoEncoder的一些變種

 

Denoising AutoEncoders

只是在像素級別的重建,很有可能只是記住一些特徵。爲了防止這樣,我們給加一些擾動,加一些噪聲

如果加了噪聲之後還能重建出來,就說明能夠從數據中發現真正的規律了

 

Dropout AutoEncoders

在訓練的時候,有目的得讓一些權值斷開(把weight暫時設置爲0,但以後反向傳播還要用)

這樣給下一層的信息就是有限的了,就迫使系統更加robust,不會依賴所有神經元的輸入

可以看到,dropout很小的時候accurancy並不是最小的,因爲overfitting了,把一些噪聲的形態也記住了

 

Adversarial Autoencoders

對抗自編碼器,AAE

將GAN的技術應用到了autoencoder上面

AAE是根據VAE發展來的

encoder把真實分佈x映射成隱層的z, decoder 再將z解碼還原成x。
AAE的特點就在於在隱層hidden layer中引入了對抗的思想來優化隱層的z

 

 

 

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