2014-10-17 157 views
0

通常反向傳播神經網絡存在消失梯度的問題。 我發現卷積神經網絡(CNN)一些如何擺脫這種消失的漸變問題(爲什麼?)。爲什麼要對卷積神經網絡進行預訓練

也在一些論文中討論了CNN的一些預訓練方法。 有人可以解釋我以下嗎?

(1) the resons for pretraining in CNN and 
    (2) what are the problems/limitations with CNN? 
    (3) any relavent papers talking about the limitation of CNN? 

在此先感謝。

+0

只是關於第一點。 CNN作爲其他類型的深度學習方法試圖學習稀釋反向傳播算法的能力的許多節點和層。輸出節點的錯誤差異爲10%可能導致第一層更新0.000001%。預訓練(無監督方法)不會受到這些問題的困擾,可以在使用反向傳播進行微調之前將網絡更新爲有意義的權重(並將模式與我們所需的輸出相關聯)。 – ASantosRibeiro 2014-10-17 12:50:59

+0

嘗試在交叉驗證中查找:http://stats.stackexchange.com/search?q=cnn – killogre 2014-10-28 12:06:39

回答

3
  1. 預訓練是一種正則化技術。它提高了模型的泛化精度。由於網絡暴露於大量數據中(我們在很多數據中都有大量的無監督數據),所以權重參數被傳送到整體上代表數據分佈的空間,而不是過度擬合底層數據的特定子集分配。神經網絡,尤其是那些具有大量隱藏單元的模型表示能力的神經網絡,傾向於過度擬合您的數據,並容易受到隨機參數初始化的影響。此外,由於初始層以監督方式正確初始化,因此梯度稀釋問題不再那麼嚴重。這就是爲什麼預訓練被用作監督任務的初始步驟,通常使用梯度下降算法進行訓練。

  2. CNN與其他神經網絡有着同樣的命運。調整的參數太多;最佳輸入補丁大小,隱藏層數,每層特徵圖的數量,池化和步幅大小,歸一化窗口,學習速率等。因此,與其他ML技術相比,模型選擇的問題相對困難。大型網絡的培訓可以在GPU或CPU集羣上進行。

+0

我不確定其他神經網絡,但我相信CNN無法在羣集上進行有效訓練。它通常在GPU上完成。我當然很想糾正。 – 2014-10-19 13:06:36

+1

我在一個集羣上訓練他們,這顯然不是一個有效的方法。但是如何在沒有GPU的非常大的機器上訓練深層網絡仍然有工作要做。如果你很好奇,我會把你的論文轉交給你:http://cs.stanford.edu/people/ang/?portfolio=large-scale-distributed-deep-networks – Cylonmath 2014-10-21 11:32:51

+0

啊我明白了。謝謝。 – 2014-10-22 10:01:59