我正在閱讀關於神經網絡的內容,並且無法理解這一點 - 如果權重剛剛更新以適合特定的輸入輸出對,它將如何工作? 我的意思是,權重可以完全不同於另一組。它將根據具體情況進行調整,但需要根據另一個案例的產出比較重新調整。 我只是不能看到「魔術」..一個簡單的例子與輸入將非常感激。權重如何適用於不同集合?
回答
一個很容易被忽略的例子很簡單Curve Fitting(看看這個維基百科頁面上的動畫)。這是一項也可以用神經網絡完成的任務。 「魔術」是,你的網絡模擬了一個函數,它近似於你的訓練數據(輸入 - 輸出對)。訓練期間未見過的新病例可以視爲您的訓練數據點之間的點。
現在嘗試想象更一般的情況,你不僅有1個輸入和1個輸出值,而且都是多變量。例如,用10個輸出神經元取MNIST handwritten digits dataset的28x28 = 784個像素。每個輸出神經元模擬給定示例屬於每個數字0..9的概率。在培訓期間,您的網絡將學習功能。這意味着它檢測到輸入數據中的相關性,因此可以將其抽象化(您也可以將其想象爲一種「壓縮」)。因此,第一個隱藏層中的每個神經元都建模一個特定的特徵。您可以通過將第一個隱藏的神經元之一的權重視爲灰度圖像並使用任意圖像庫(如python的matplotlib)對其進行繪製,從而將這些特徵可視化。嘗試在上面鏈接的mnist數據庫上訓練一個神經網絡並查看這些功能,這應該闡明這是如何工作的。
你的神經網絡的更深層的隱藏層現在需要先前層的激活並學習更高層的功能。這意味着他們將前一層的特徵組合起來,以獲得更加抽象的輸入表示。這將繼續爲每個後續的層,直到你最終有10個輸出神經元建模抽象信息「在給定的輸入圖像上有零可見」。
很明顯,如果您有足夠的培訓數據涵蓋許多案例,您將得到很多功能。即使當給定的輸入與訓練期間使用的情況不同(例如,稍微失真的新零點),這些功能也可以工作。
當然,網絡的泛化性能取決於您的培訓數據覆蓋了多少不同的一般情況。但是還有其他一些因素影響泛化性能。要提到一些關鍵字,你應該看看L1和L2正則化,權重衰減,卷積神經網絡,退出等等 - 所有這些都是進一步提高泛化性能的技術。
- 1. Nodejs Bluebird Promise.map不適用於大集合
- 2. ReactiveList.AddRange不適用於大集合
- 3. 不適用於PLSQL的集合
- 4. JSON.NET合同不適用於內對象
- 5. 不同領域的多個LINQ聚合函數適用於整個集合
- 6. 袋子差異(類似於setdiff()但不適用於集合)
- 7. Kerberos授權不適用於Chrome和FireFox,但適用於IE
- 8. 這個特定的集合如何適用於特定場景?
- 9. 如何將適配器模式應用於集合?
- 10. System.InvalidOperationException「否」集合更改事件指標不適用於大小的集合「0」
- 11. 算法來選擇使用不同權重的獲勝者集合
- 12. 如何確定公制分數的合適權重
- 13. 重試不適用於Datacard
- 14. JQuery授權不適用於RESTful服務
- 15. 取決於列值的不同集合
- 16. backbonejs菜單屬於不同的集合
- 17. MongoDB的相同集合,但不同子集下重複值
- 18. TFS團隊項目集合不適用於版本15的程序集,只適用於12
- 19. 如何創建位於不同div的元素的html集合
- 20. 集合與模式不同如何集合
- 21. 如何計算Hadoop的不同集合
- 22. 組合框效果不適用於不同的行
- 23. Word換行不適用於chrome內的fieldset集合
- 24. Meteor.wrapAsync似乎不適用於db集合插入
- 25. 集合函數不適用於R中的paste0
- 26. spring mvc驗證器@valid不適用於集合
- 27. Jquery庫symfony集合不適用於<table>元素
- 28. AutoMapper不適用於派生類的集合
- 29. UICollectionViewFlowLayout minimumLineSpacing不適用於整個集合視圖 - Swift
- 30. 插入和合並排序不適用於大數據集C++