Deep Learning 閱讀筆記:Convolutional Auto-Encoders 卷積神經網絡的自編碼表達


需要搭建一個比較復雜的CNN網絡,希望通過預訓練來提高CNN的表現。

上網找了一下,關於CAE(Convolutional Auto-Encoders)的文章還真是少,勉強只能找到一篇瑞士的文章、

     Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction

干貨少,不過好歹有對模型的描述,拿來看看。


 


 

 

概述:

  本文提出了一種卷積神經網絡的自編碼表達,用於對卷積神經網絡進行預訓練。

 

具體內容:

  原文廢話挺多,我只關心模型——CAE:

    

    卷積層的獲得:

    

    再表達:

    其中“ * ”表示卷積;再表達的系數矩陣是卷積矩陣在兩個維度上的翻轉(rot180)。

 

  關於CAE的具體結構論文講得不清不楚(果真是水),這里有兩個明顯的問題:一是兩次用同樣大小卷積核做的卷積如何恢復原來圖像的大小,論文中提到full convolution和valid convolution,大概是指兩次卷積的卷積方法不同;另一個就是用卷積核的反轉卷積隱藏層的意義和作用何在,這個實在是無端端冒出來的計算方法;


 

    輸出的誤差使用均方誤差MSE:

    偏導的求法:

  deltaH和deltaY分別是隱藏層和輸出層的敏感度。這里又有問題:只有一個隱藏層怎么來敏感度?如果是反向傳播怎么傳播過去?論文此處的“ * ”還是代表的是卷積嗎?如果是的話用的是full還是valid?為什么用隱藏層和敏感度做運算而不是卷積核?這個公式到底怎么來的?(天到底是我太水還是論文太渣)

 

  接着論文提到了在非監督學習下的non-overlapping maxpooling。說這東西真是厲害,maxpooling抹去了區域非最大值,因此引入稀疏性。強大到甚至連稀疏性懲罰項都不用就可以獲得好結果。(你給我講清楚為什么啊喂!)


試驗結果:   

      論文使用MNISTCIFAR10數據庫各做了4組實驗,每組訓練20個features,結果如下:

 

MNIST:

CIFAR10:

 

其中a)是簡單的CAE,b)引入了30%噪聲,C)引入maxpooling,D)引入maxpooling和30%噪聲。

單從這兩組結果來看有maxpooling的CAE,通過訓練獲得較好特征。


與其他方法對比:

   文中最后利用CAE做pretraining訓練一個6層隱藏層的CNN,與無pretraining的CNN相比,其實提高不明顯。

 

   

    

 


 

感想:看完這篇文章對我想構建的CAE貌似沒有太大的幫助,因為此文章在實踐方面的細節和數學過程的推導都是一筆帶過,沒有詳盡描述。(到底是我水還是文章水) 

 

 

 

 

 

 


免責聲明!

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



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