2013-03-21 27 views
0

我是神經計算的新手,能夠理解後向傳播的概念。我的問題是,你能訓練一個沒有反向傳播的MLP來適應一個功能嗎?說,我需要適應一個正弦函數。我如何做到這一點,而不使用反向傳播來分配權重?神經計算 - 在沒有後向傳播的情況下訓練MLP

+0

這是一個普遍的優化問題,你問。有很多方法可以優化神經網絡體系結構以適應給定的功能。我建議你在挖掘人工神經網絡之前閱讀一本關於優化的書。 – Memming 2013-03-21 15:06:53

回答

0

我不相信他們是一種常用的方式來訓練沒有反向傳播的MLP(wikipedia),它只是一種應用於權重的直接梯度方法。有些修改使用例如一個動量項,或者在不同的點上訓練。

然而,還有許多其他的機器學習算法,其使用不同的成本函數或結構,如Particle Swarm OptimisationEvolutionary optimisation

2
can you train an MLP without back-propagation to fit a function? 

是。反向傳播是尋找神經元權重的優化算法。您可以使用任意數量的不同算法來查找這些重量,從而訓練您的神經網絡。

例子包括

+0

backprop有不同的定義:(1)計算MLP的梯度,(2)計算梯度下降的MLP +優化的梯度。 – alfa 2013-03-21 17:44:07

+0

非常感謝你們所有人。現在我研究它更有意義了。 – Kryp 2013-03-24 00:57:46

0

使用反向傳播訓練神經網絡的想法是特別有趣,因爲它可以讓你更新沒有直接的中間權重o從這些權重中輸出。所以這是一個有用的想法!大多數時候,人們將反向傳播算法與梯度下降算法結合在一起。但是,梯度下降算法有時很慢,但是您可以用另一個「聰明」算法(如levenberg-marquardt或擴展卡爾曼濾波器)替換梯度下降算法(僅使用誤差導數的信息)。其中很多。在這些情況下,您仍然使用反向傳播算法和另一種優化算法。

有時候,神經網絡收斂的問題不是由於優化算法的質量差,而是由於初始化「起始權重」。有一個巨大的文獻可以幫助你「巧妙地」初始化神經網絡的權重。

當您問及@Atilla_Ozgur是否適當回答時,您可以使用其他算法來處理該問題。例如,您可以創建一組神經網絡,並嘗試使用一種遺傳算法來選擇使用諸如突變和複製等操作的最佳網絡。

讓我說你的東西。 sin函數尤其是一個有趣的例子,有時需要一段時間才能收斂。但是,它可以通過組合反向傳播+梯度下降進行訓練。我很久以前就做過這個。你必須確定隱藏層中有足夠多的神經元(如果你正在訓練神經元的間隔[0,2pi]),通常需要5個具有激活函數tanh的神經元)。

0

有一個最好的選擇來訓練一個神經網絡,它是粒子羣優化,因爲pso給出了全局最優值&它的空間複雜度與其他算法相比是最好的。有很多研究論文,你可以搜索&比較它與BP算法。

+1

歡迎來到堆棧溢出!你能提供這些論文的鏈接,或者更多信息,比如一個例子嗎? – Gutblender 2014-09-25 22:16:57