2013-06-13 61 views
1

我想了解用於人工神經網絡的誤差反向傳播算法。神經網絡反向傳播

據我所知,每個神經元都有一個sigmoid函數的結果作爲輸出,該函數將每個權重/輸入對的乘積與「偏差」值的和作爲參數。

一旦計算出網絡的總誤差,就可以使用相對於各種權重的誤差導數來找到誤差函數的「局部最小值」。這些應該是錯誤最小的權重。

但是,導數爲零的點在理論上也可以是局部最大值......我該如何解決這個問題?

乾杯:)

+0

乾杯....... :) – pinkpanther

+0

有各種方法可以減少局部最小問題。 [這裏](http://www.paper.edu.cn/scholar/downpaper/lvjiancheng114141-201110-3)是一篇可以幫助的論文。 – user1961213

回答

1

神經網絡本身無法從當地最低不出問題。 所以我們需要額外的技術。

減少局部最小問題的一個簡單方法是使用動量。 (但是,這不是聖盃) 更新權重使用歷史移動的三角洲(如移動平均)將是有用的。如果在特定時期,增量爲-1,但最近的增量歷史爲+1,+ 2,+ 4,+ 2。 我們定義了MA大小5.那麼這個時期的實際增量將是(+1 +2 +4 +2 -1)/ 5 = +1.6也許,如果你使用指數衰減函數來移動窗口重量,這種動量方法顯示出更多改進的結果。

+0

按照當地最小的問題,你是指我上面概述的那個?對不起,我對神經網絡很陌生,並且自學他們:) – MrD

+0

是的,它的全部目的是找到一個局部最小的錯誤,也就是說你更新權重尋找錯誤減少,但通常它會再次增加。如果算法在那裏停止,那麼您可能會遇到重量較輕的組合,但不是所有組合中最好的組合。這就是爲什麼提到_momentum_可能會有所幫助:它可以使算法進一步搜索_儘管儘管錯誤仍然增加了一點。 – Luis

相關問題