2013-12-10 23 views
1

下一層所以我正在訓練的堆疊降噪自動編碼與自動編碼器每3層的查詢。我的目標是通過使用堆疊去噪自動編碼器進行圖像分類。關於堆疊式降噪自動編碼

,我使用創建的圖像片段的方法:

  • 段整個圖像分成8×8塊
  • 調整大小的塊爲1x64
  • 隨機選擇塊(例如:MOD 7或東西)並插入到TrainingMatrix

步驟來訓練的自動編碼:

  • TrainingMatrix維度:[10000x64](即尺寸64)
  • 3層系統的10000個訓練樣本:[64 - > 32 - > 64]
  • 舞弊與高斯噪聲
  • 訓練神經網絡,具有輸入每個訓練樣本:[損壞輸入],輸出: [未損壞的數據] &然後BACKPROP

在接下來的DAE做我使用的權重從最後層(即層2-> 3)來訓練的下一個層?或者我需要通過網絡運行另一個樣本,然後用它來訓練下一層?如果我們使用來自圖層2-> 3的權重,我們是不是隻有一個樣本集來訓練下一個自動編碼器?如果是這種情況,那麼權重只是隨機生成的加權矩陣的初始值?堆疊DAE層之後

最終步驟:

  • 運行通過監督層最終DAE層諸如SVM

很抱歉,如果這聽起來像一個微不足道的問題。

回答

4

我對堆棧降噪自動編碼器的解釋是你訓練了第一個自動編碼器(即64-> 32-> 64),使用backogogogation和無噪聲輸入作爲輸出,就像典型的神經網絡一樣,然後將數據通過第一層進入32維空間並運行相同的過程(即32→16→32)並從那裏前進。然後你可以添加另一個圖層。你的理論也可以在網絡上進行某種微調,因爲你也可以形成64-> 32-> 16-> 32-> 64網絡並微調參數,但這可能不是必須的。

之後的那些步驟,則再取你輸入數據在64維空間中,並通過64將其推 - > 32 - > 16 - >你的分類器。如果你想使用神經網絡作爲分類器,那麼你可以繼續使用更多的圖層,然後在開始時運行backprop,從而獲得更好的結果。堆疊去噪自動編碼器的原始工作是here(PDF)。

在一個側面說明,如果你正在考慮使用SVM的,我認爲,被稱爲學習的內核,但我沒有爲參考。

+1

感謝您的回覆,我真的很感激。只是爲了澄清:在你的第一次訓練和反擊之後,你把你的體重和乘以你的訓練集,以使其達到較低的維度(即採取SIGMOID {[10000x64] * [64x32]})並用它來訓練下一層?這是不同的,它不僅僅是直接用64-> 32-> 16-> 32-> 64的大神經網絡進行訓練並輸入:corrupted_noise&output:uncorrupted_noise? – bge0

+1

正確。堆疊去噪自動編碼器的整個想法是貪婪的分層訓練。通過一次訓練一層,你的結果比一次訓練整個網絡的結果要好得多。神經網絡非常容易受到局部最優化影響,因此在這個尺寸的網絡上隨機初始化權重開始將會使您得到較差的結果。 – aplassard

+0

太棒了,謝謝! – bge0