1. 程式人生 > >Extracting and composing robust features with denosing autoencoders 論文

Extracting and composing robust features with denosing autoencoders 論文

重要 style add 論文 是把 任務 生成 改進 編碼器

這是一篇發表於2008年初的論文。

文章主要講了利用 denosing autoencoder來學習 robust的中間特征。。進上步,說明,利用這個方法,可以初始化神經網絡的權值。。這就相當於一種非監督學習的方法來訓練神經網絡。

當我們在用神經網絡解決各種識別任務時,如果我們想要網絡的性能更好,就需要更深層或更wider的神經網絡來建模,Model出更復雜的分布。 網絡變深以後,如何訓練是一個很重要問題,如果訓練不好,深層網絡的性能真的不如淺層的神經網絡。。

在訓練深層網絡的解決方法的道路上,已有的方法:

1.隨機初始化權值, 不過這樣的效果很不好,網絡很容易 stuck in poor solutions

2. 利用stacking的受限的波爾茲曼機預訓練網絡,然後再fine-tune with UP-down。

3. 使用stacking的 自動編碼器初始化網絡權值,然後再進行fine-tune with gradient descent.

方法3中的基本的autoencoder的圖是這樣的:

技術分享

現在的問題是:我們能不能改進一下它呢??讓它學習到的中間特征更具有代表性?(即可以學習到對輸入不變的中間特征)。

下圖為文中提出的降噪編碼器。。它的主要思想為:給定一個輸入 X,首先進行一定的destroy,得到corrupted的 -X,然後利用它學習到中間特征來reconstruct 輸入。

改進的 denosing autoencoder

技術分享

然後,我們就可以利用它逐層來訓練網絡的初始權值了。

具體過程

1.訓練第一層的權值:給定輸入X,加噪得到-X, 然後利用這個autoencoder得到了第一層的權值;

2.訓練第二層的權值: 固定第一層的權值,然後給定輸入X得到了第一層的輸出Y,然後把這個Y當作為降噪編碼器的原始的輸入,然後在Y的基礎上加噪,得到了-Y,然後利用autoencoder得到了第二層的初始權值;

3.訓練第三層的權值:固定前兩層的權值,然後給定輸入X,得到了第二層的輸出Z,然後把這個Z當作為降噪編碼器的原始的輸入,在Z的基本加噪,………………,得到了第三層的初始權值;

等等……

這變樣,把整個網絡的初始權值訓練完畢了。

有一個註意的地方就是:我們在訓練後面幾層的權值時,我們的輸入X是不加噪聲的,我們只是把前一層的輸出作為降噪編碼器的原始輸入,在它的基礎上加上噪聲的;這個別錯了;

文中給出了從不同的角度來說明了降噪編碼器。

包括:什麽流形啊、什麽信息論、生成模型等等相關的東西,我看了一遍,也沒有怎麽看明白,需要很深的數學知識、統計知識啊,所以沒有深入去看了;

文中通過試驗,證明了它的有效性;

另外,文中的參考文獻很有價值的;

參考:Extracting and composing robust features with denosing autoencoders 論文;

Extracting and composing robust features with denosing autoencoders 的對應的PPT

Extracting and composing robust features with denosing autoencoders 論文