2009-12-12 53 views
3

我有幾個關於如何神經網絡的BP算法代碼的問題:反向傳播問題

拓撲我的網絡是輸入層,隱含層和輸出層。隱藏層和輸出層都具有S形功能。

  1. 首先,我應該使用的偏見? 要在哪裏連接我的網絡中的偏見 ?我應該在隱藏的 圖層和輸出圖層中每層放置一個偏差 ?怎麼樣 輸入層?
  2. 在這種link,它們限定的最後增量作爲輸入 - 輸出和它們backpropagate三角洲如可在圖中看到的。他們擁有一張表,在實際上 以前饋方式傳播錯誤之前,將所有增量加上 。這是一個 偏離標準 反向傳播算法? alt text http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop_files/img13.gif
  3. 我應該隨時間而減少的學習 因素?
  4. 萬一有人知道,是有彈性的 傳播在線或批處理 學習技術?

感謝

編輯:一兩件事。在下面的圖片中,假設我使用sigmoid函數,d f1(e)/ de是f1(e)* [1- f1(e)],對吧? alt text http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop_files/img14.gif

回答

2

您的問題需要更詳細地指定......您需要什麼?泛化還是記憶?您是否期待複雜的模式匹配數據集或連續域輸入輸出關係?這裏是我的0.02美元:

  1. 我建議你留下一個偏見神經元,以防萬一你需要它。如果NN被認爲是不必要的,培訓應該將權重推到可以忽略的值。它將連接到前一層中的每個神經元,但不連接到前一層中的任何神經元。

  2. 的公式看起來像標準backprop,據我可以告訴。

  3. 很難概括您的學習速度是否需要隨着時間的推移而降低。行爲是高度依賴於數據的。你的學習速度越慢,你的訓練就會越穩定。但是,它可能會很慢,尤其是如果你像我曾經做過的那樣使用腳本語言來運行它。

  4. 彈性backprop(或RProp在MATLAB中)應該可以處理在線和批量訓練模式。

我只是想補充一點,你可能會想,如果有可能考慮替代激活功能。 sigmoid函數並不總是給出最佳結果...

+0

我的目標是泛化。我現在正在使用tanh。除了那些,你會有什麼建議? – 2009-12-13 20:06:25

+0

隱式和輸出神經元的tanh和線性函數分別適用於連續函數映射。階梯函數對於模式識別非常有用。請在您的問題中添加更多詳細信息。 – Zaid 2009-12-14 06:25:12

3
  1. 它有所不同。就我個人而言,我沒有看到很多偏見的原因,但是我沒有研究過NN,實際上無法爲他們提供有效的案例。我會嘗試並測試結果。

  2. 這是正確的。反向傳播首先包括計算增量,然後通過網絡傳播它們。

  3. 是的。學習因素應隨着時間的推移而減少。但是,對於BP,你可以打到局部的,不正確的平穩點,所以有時在第500次迭代時,重新設置初始速率的學習因子是有意義的。

  4. 我不能回答這個問題.....從來沒有聽說過什麼RP。

+1

Re 4)我_think_ RP可以在線或批量 – 2009-12-12 10:36:16