我是神經計算的新手,能夠理解後向傳播的概念。我的問題是,你能訓練一個沒有反向傳播的MLP來適應一個功能嗎?說,我需要適應一個正弦函數。我如何做到這一點,而不使用反向傳播來分配權重?神經計算 - 在沒有後向傳播的情況下訓練MLP
回答
我不相信他們是一種常用的方式來訓練沒有反向傳播的MLP(wikipedia),它只是一種應用於權重的直接梯度方法。有些修改使用例如一個動量項,或者在不同的點上訓練。
然而,還有許多其他的機器學習算法,其使用不同的成本函數或結構,如Particle Swarm Optimisation和Evolutionary optimisation
can you train an MLP without back-propagation to fit a function?
是。反向傳播是尋找神經元權重的優化算法。您可以使用任意數量的不同算法來查找這些重量,從而訓練您的神經網絡。
例子包括
使用反向傳播訓練神經網絡的想法是特別有趣,因爲它可以讓你更新沒有直接的中間權重o從這些權重中輸出。所以這是一個有用的想法!大多數時候,人們將反向傳播算法與梯度下降算法結合在一起。但是,梯度下降算法有時很慢,但是您可以用另一個「聰明」算法(如levenberg-marquardt或擴展卡爾曼濾波器)替換梯度下降算法(僅使用誤差導數的信息)。其中很多。在這些情況下,您仍然使用反向傳播算法和另一種優化算法。
有時候,神經網絡收斂的問題不是由於優化算法的質量差,而是由於初始化「起始權重」。有一個巨大的文獻可以幫助你「巧妙地」初始化神經網絡的權重。
當您問及@Atilla_Ozgur是否適當回答時,您可以使用其他算法來處理該問題。例如,您可以創建一組神經網絡,並嘗試使用一種遺傳算法來選擇使用諸如突變和複製等操作的最佳網絡。
讓我說你的東西。 sin函數尤其是一個有趣的例子,有時需要一段時間才能收斂。但是,它可以通過組合反向傳播+梯度下降進行訓練。我很久以前就做過這個。你必須確定隱藏層中有足夠多的神經元(如果你正在訓練神經元的間隔[0,2pi]),通常需要5個具有激活函數tanh的神經元)。
有一個最好的選擇來訓練一個神經網絡,它是粒子羣優化,因爲pso給出了全局最優值&它的空間複雜度與其他算法相比是最好的。有很多研究論文,你可以搜索&比較它與BP算法。
歡迎來到堆棧溢出!你能提供這些論文的鏈接,或者更多信息,比如一個例子嗎? – Gutblender 2014-09-25 22:16:57
- 1. 反向傳播訓練神經網絡
- 2. 神經網絡的反向傳播算法:異或訓練
- 3. 神經網絡,反向傳播,在訓練
- 4. 使用反向傳播訓練實值神經網絡
- 5. 在神經網絡中循環訓練數據反向傳播算法
- 6. 在Theano訓練MLP
- 7. 向後傳播和批量訓練
- 8. 反向傳播訓練卡住
- 9. 在scikit-learn中訓練神經網絡來計算'XOR'
- 10. 訓練神經網絡
- 11. Adaline神經元訓練
- 12. TensorFlow MLP不訓練XOR
- 13. 在Java中實現神經網絡:訓練和反向傳播問題
- 14. 在張量流中,如何在沒有實際訓練的情況下評估一個神經網絡
- 15. 瞭解經過訓練的神經網絡內存使用情況
- 16. 使用遺傳算法訓練神經網絡
- 17. 如何將多線程應用於反向傳播神經網絡訓練?
- 18. 使用反向傳播訓練的神經網絡解決了AND,或者並沒有解決XOR
- 19. 在matlab中訓練神經網絡
- 20. 在Ruby中訓練神經網絡
- 21. 沒有訓練價值的神經網絡學習
- 22. 神經網絡訓練標準:如何訓練多個類別(即形狀和顏色)沒有過度訓練
- 23. MLP神經網絡訓練不正確,可能收斂到本地最小值
- 24. TensorFlow中的前訓練神經網絡
- 25. OCR的訓練前饋神經網絡
- 26. 保存訓練的神經網絡
- 27. 嘈雜的神經網絡訓練集
- 28. 神經網絡訓練中的MSE
- 29. Matlab:神經網絡訓練的問題
- 30. 改變訓練圖像訓練神經網絡
這是一個普遍的優化問題,你問。有很多方法可以優化神經網絡體系結構以適應給定的功能。我建議你在挖掘人工神經網絡之前閱讀一本關於優化的書。 – Memming 2013-03-21 15:06:53