深度學習AE與DAE


AutoEncoder

這是一種非監督學習方式,主要用於數據的降維或者特征的抽取。

Autoencoder 實際上跟普通的神經網絡沒有什么本質的區別,分為輸入層,隱藏層和輸出層。

 

降維:autoencoder的意義在於學習的(通常是節點數更少的)中間coder層(最中間的那一層),這一層是輸入向量的良好表示。這個過程起到了“降維”的作用。

特征提取:樣本逐步通過多個編碼器(層),然 后以最后一層編碼器的輸出作為該樣本的新特征。在完成 Autoencoder 的學習任務之后,在實際應用中, 在解碼階段學習得到的權重將不進行考慮。

當autoencoder只有一個隱含層的時候,其原理相當於主成分分析(PCA)

當autoencoder有多個隱含層的時候,每兩層之間可以用RBM來pre-training,最后由BP來調整最終權值

denoising autoencoder是autoencoder的一個變種,與autoencoder不同的是,denoising autoencoder在輸入的過程中加入了噪聲信息,從而讓autoencoder能夠學習這種噪聲。

denoising autoencoder與RBM非常像:

(1)參數一樣:隱含層偏置、顯示層偏置、網絡權重

(2)作用一樣:壓縮輸入

(3)過程類似:都有reconstruct,並且都是reconstruct與input的差別,越小越好

 denoising autoencoder與RBM的區別:

背后原理就不說了哈(RBM是能量函數),區別在於訓練准則。RBM是隱含層“產生”顯示層的概率(通常用log表示),denoising autoencoder是輸入分布與reconstruct分布的KL距離。所用的訓練方法,前者是CD-k,后者是梯度下降。

 再補充一下,RBM固定只有兩層;autoencoder,可以有多層,並且這些多層網絡可以由標准的bp算法來更新網絡權重和偏置,與標准神經網絡不同的是,autoencoder的輸入層和最終的輸出層是“同一層”,不僅僅是節點數目、輸出相同,而是完完全全的“同一層”,這也會影響到這一層相關的權值更新方式。總之,輸入與輸出是同一層,在此基礎上,再由輸入與輸出的差別構造准則函數,再求各個參數的偏導數,再用bp方式更新各個權重......

降噪自動編碼器(Denoising Autoencoder)

Vincent在2008年的論文中提出了AutoEncoder的改良版——dA。推薦首先去看這篇paper。

論文的標題叫 "Extracting and Composing Robust Features",譯成中文就是"提取、編碼出具有魯棒性的特征"

怎么才能使特征很魯棒呢?就是以一定概率分布(通常使用二項分布)去擦除原始input矩陣,即每個值都隨機置0,  這樣看起來部分數據的部分特征是丟失了。

以這丟失的數據x'去計算y,計算z,並將z與原始x做誤差迭代,這樣,網絡就學習了這個破損(原文叫Corruputed)的數據。

這個破損的數據是很有用的,原因有二:

其之一,降噪

原因不難理解,因為擦除的時候不小心把輸入噪聲給×掉了。

其之二,破損數據一定程度上增加泛化性能。由於數據的部分被擦掉了,因而這破損數據

一定程度上比較接近測試數據。(訓練、測試肯定有同有異,當然我們要求同舍異)。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM