2013-03-26 31 views
1

我正在閱讀關於神經網絡的內容,並且無法理解這一點 - 如果權重剛剛更新以適合特定的輸入輸出對,它將如何工作? 我的意思是,權重可以完全不同於另一組。它將根據具體情況進行調整,但需要根據另一個案例的產出比較重新調整。 我只是不能看到「魔術」..一個簡單的例子與輸入將非常感激。權重如何適用於不同集合?

回答

0

一個很容易被忽略的例子很簡單Curve Fitting(看看這個維基百科頁面上的動畫)。這是一項也可以用神經網絡完成的任務。 「魔術」是,你的網絡模擬了一個函數,它近似於你的訓練數據(輸入 - 輸出對)。訓練期間未見過的新病例可以視爲您的訓練數據點之間的點。

現在嘗試想象更一般的情況,你不僅有1個輸入和1個輸出值,而且都是多變量。例如,用10個輸出神經元取MNIST handwritten digits dataset的28x28 = 784個像素。每個輸出神經元模擬給定示例屬於每個數字0..9的概率。在培訓期間,您的網絡將學習功能。這意味着它檢測到輸入數據中的相關性,因此可以將其抽象化(您也可以將其想象爲一種「壓縮」)。因此,第一個隱藏層中的每個神經元都建模一個特定的特徵。您可以通過將第一個隱藏的神經元之一的權重視爲灰度圖像並使用任意圖像庫(如python的matplotlib)對其進行繪製,從而將這些特徵可視化。嘗試在上面鏈接的mnist數據庫上訓練一個神經網絡並查看這些功能,這應該闡明這是如何工作的。

你的神經網絡的更深層的隱藏層現在需要先前層的激活並學習更高層的功能。這意味着他們將前一層的特徵組合起來,以獲得更加抽象的輸入表示。這將繼續爲每個後續的層,直到你最終有10個輸出神經元建模抽象信息「在給定的輸入圖像上有零可見」。

很明顯,如果您有足夠的培訓數據涵蓋許多案例,您將得到很多功能。即使當給定的輸入與訓練期間使用的情況不同(例如,稍微失真的新零點),這些功能也可以工作。

當然,網絡的泛化性能取決於您的培訓數據覆蓋了多少不同的一般情況。但是還有其他一些因素影響泛化性能。要提到一些關鍵字,你應該看看L1和L2正則化,權重衰減,卷積神經網絡,退出等等 - 所有這些都是進一步提高泛化性能的技術。

相關問題