matlab 收敛速度,BP网络的收敛速度和设计步骤【转】
BP神經網絡收斂速度
閾值、學習率、隱層層數、隱層節點個數等對神經網絡的學習速度(收斂速度)都有較大的影響。本文在BP網絡的基礎上,研究討論了各個參數對收斂速度的影響,以減小選取網絡結構和決定各參數值的盲目性,達到提高收斂速度的目的。
1 初始權值和閾值對收斂速度的影響
初始權值和閾值要選得小一些。選擇隱層節點數的原則是盡量使網絡結構簡單,運算量小。從實驗數據分析可知:當節點數太少時,每個節點負擔過重,迭代而有的選擇卻要迭代幾千次,或者更多,甚至不收斂。
2 學習率對收斂速度的影響
學習率的設置對BP算法的收斂性有很大的影響。學習率過小,誤差波動小,但學習速度慢,往往由于訓練時間的限制而得不到滿意解;學習率過大,學習速度加快,會引起網絡出現擺動現象,導致不收斂的危險。因此,選擇一個合適的學習率是B
P算法的一個較關鍵的問題。學習率的主要作用是調整權值、閾值的修正量.
3 隱層層數的選擇對收斂速度的影響
通過實驗發現,用兩個隱層比用一個隱層的收斂速度還要慢。
4 隱層節點數對收斂速度的影響
目前,對隱層節點數的設定缺乏理論指導,但是實驗研究表明,隱含節點數增加會影響收斂速度。
BP神經網絡設計步驟
B P網絡的設計主要包括輸入層,隱層,輸出層及各層之間的傳輸函數幾個方面。
1 網絡層數
大多數通用的神經網絡都預先預定了網絡的層數,而BP網絡可以包含不同的隱層。對多層BP神經網絡,隱層層數至少為1層或1層以上,每個隱層的神經元個數至少為1個或1個以上,否則與多層網絡的命題矛盾而不成立。
2 輸入層的節點數
網絡的輸入個數應等于應用問題的輸入數,MATLAB的BP網絡的建立是通過函數newff或newcf實現的.
3 網絡數據的預處理
預處理方法有歸一化處理、標準化處理和主成分分析。常采用的是歸一化處理,即將輸入、輸出數據映射到[-1,1]范圍內,訓練結束后再反映射到原數據范圍。
4 輸出層的節點數
輸出層節點數取決于兩個方面,輸出數據類型和表示該類型所需要的數據大小。
5 隱層的節點數
1)根據經驗,可以參考以下公式進行設計:
n=sqrp(ni+n0)+a或者n=sqrt(nl)
式中:n為隱層節點數;ni為輸入節點數;n0為輸出節點數;a為1~10之間的常數。
2)改變n,用同一樣本集訓練,從中確定網絡誤差最小時對應的隱層節點數。
6 傳輸函數
BP網絡中傳輸函數常采用S(sigmoid)型函數.在某些特定情況下,還可能采用純線性(Pureline)
函數.
7 訓練方法及其參數選擇
net.trainParam.show=..
;?%顯示訓練結果的間隔步數
net.trainParam.epochs= .. ;?%最大訓練步數
net.trainParam.goal=.. ;?%訓練目標誤差
net.trainParam.mu=.. ;?%學習系數的初始值,Marquardt調整參數
net.trainParam.mu_dec= ..;?%學習系數的下降因子
net.trainParam.mu_inc=.. ;?%學習系數的上升因子
net.trainParam.mu_max= ..;%學習系數的最大值
net.trainParam.min_grad=.. ; %訓練中最小允許梯度值
8 初始權值的設計
通常使用如下兩種方法:
(1)取足夠小的初始權值
(2)使初始值為+1和-1的權值數相等。
總結
以上是生活随笔為你收集整理的matlab 收敛速度,BP网络的收敛速度和设计步骤【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tar,zip压缩命令
- 下一篇: 神经网络控制与matlab仿真,神经网络