Neural-Networks
堆疊卷積自動編碼器的架構是什麼?
所以我正在嘗試使用卷積網絡對人類圖像進行預訓練。我閱讀了論文(Paper1和Paper2)和這個stackoverflow 鏈接,但我不確定我是否了解網絡的結構(論文中沒有明確定義)。
問題:
- 我可以讓我的輸入後跟一個噪聲層,然後是一個卷積層,然後是一個池化層 - 之後 - 在我給出輸出之前我是否會去池化(這與我的輸入圖像相同)?
假設我有幾張(135,240)張圖片。如果我使用 32, (12,21) 個內核,然後是 (2,2) 池化,我將得到 32 (62, 110) 個特徵圖。現在我要解池以獲得 32 (124, 220) 個特徵圖,然後將它們展平嗎?在給我的(135,240)輸出層之前?
- 如果我有多個這樣的 conv-pool 層,我應該一個一個地訓練它們 - 就像在堆疊去噪自動編碼器中一樣?或者 - 我可以有類似 input-conv-pool-conv-pool-conv-pool-output 的東西(輸出與輸入相同)嗎?在那種情況下,應該如何管理池化、去池化?我應該只在輸出前的最後一個池層中去池嗎?再一次 - 該去池化的調整大小因素應該是什麼?是否打算將特徵圖恢復到輸入的形狀?
- 我應該在每個 conv-pool-depool 層之後引入噪聲層嗎?
- 然後在微調時 - 我應該只刪除去池層並保持其餘部分不變。或者我應該同時刪除噪聲層和去池層
- 任何人都可以指向我的網址/論文,其中詳細介紹了這種堆疊卷積自動編碼器的架構以對圖像進行預訓練?
我目前正在探索堆疊卷積自動編碼器。
我會盡我所能回答你的一些問題。請注意,我可能是錯的,所以請謹慎對待。
- 是的,您必須“反轉”池,然後與一組過濾器進行卷積以恢復您的輸出圖像。一個標準的神經網絡(考慮 MNIST 數據作為輸入,即 28x28 輸入維度)將是:
28x28(input) -- convolve with 5 filters, each filter 5x5 --> 5 @ 28 x 28 maps -- maxPooling --> 5 @ 14 x 14 (Hidden layer) -- reverse-maxPool --> 5 @ 28 x 28 -- convolve with 5 filters, each filter 5x5 --> 28x28 (output)
- 我的理解是,通常這是一個人應該做的,即分別訓練每一層。之後,您堆疊層並使用預先訓練的權重再次訓練整個網絡。然而,Yohsua Bengio 有一些研究(參考文獻忘記了我的記憶)表明可以構建一個全棧網絡並從頭開始訓練。
- 我的理解是,“噪聲層”是為了在輸入中引入魯棒性/可變性,以便訓練不會過度擬合。
- 只要你還在“訓練”預訓練或微調,我認為重建部分(即反向池化、反捲積等)是必要的。否則應該如何執行錯誤反向傳播來調整權重?
- 我嘗試瀏覽了許多論文,但從未完整地解釋過架構。如果你找到任何請讓我知道。