數據挖掘---分類算法之神經網絡算法BPN

        有段時間沒有寫了,覺得很有必要繼續加油寫下去。一直有想梳理下主要的機器學習算法了,做一個從各個主流算法到新興的算法,都做一番回顧,理論結合代碼實踐,做一個複習,畢竟溫故而知新。順便說下,什麼機器學習,數據挖掘,人工智能,這幾個詞語很多,也很容易用的模糊了,邊界不是很清晰,我也不想做過多的解讀與區分,免得弄巧成拙,或者班門弄斧。還是埋頭實踐吧。

       後面的幾篇主要從這麼幾個類別來整理:

       分類算法;

       聚類算法;

       關聯算法;

       其他算法;

        這麼我們以一個就來個經典的分類算法,神經網絡算法。(以下摘自本人的畢業設計論文,部分公式用圖片代替,由於CSDN公式很難編輯)

        人工神經網絡模型大多爲BP網絡(Back Propagation Network,BP),即反向傳播學習算法[14、30]。它通常是由三層相同的一系列神經元構成的層狀網絡,底層爲輸入層,中間爲隱含層,頂層爲輸出層,如圖2.2。信號在相鄰各層間逐層傳遞,不相鄰的各層間無聯繫。神經網絡方法的優點是應用方便,獲得結果較快較好;主要的缺點是利用了大量的可調參數,使結果不易解釋和理解。

        BPN是一種單向傳播的多層前向神經網絡,其結構爲除輸入輸出結點外,有一層或多層隱含結點,同層結點間無任何聯接,由於同層結點上無任何耦合,故每層結點的輸出隻影響下一層結點的輸出。因此,可將BP網絡看作從輸入到輸出的一種高度非線性映射,它也是目前應用最廣泛的一種模型。BP算法是在導師指導下,適合於多層神經元網絡的一種學習模型,它是建立在梯度下降法基礎上的[30]

 

圖2.2 人工神經網絡示意圖

 

                算法描述:


                  (2.2.1)


                        若和E都小於允許的誤差,則學習過程結束,否則計算各層節點的輸出偏差,進行誤差反向傳播,修改網絡連接權值和閾值。



        網絡連接權值和節點閾值,經過上述過程的反覆修正,逐漸趨於穩定的值。

        採用BPN法的過程中需要選擇的幾個參數

        ①學習率和慣性因子

        BP算法本質上是優化計算中的梯度下降法,利用誤差對於權、閥值的一階導數信息來指導下一步的權值調整方向,以求最終得到誤差最小。爲了保證算法的收斂性,學習率必須小於某一上限,一般取0<<1而且越接近極小值,由於梯度變化值逐漸趨於零,算法的收斂就越來越慢。在網絡參數中,學習率和慣性因子是很重要的,它們的取值直接影響到網絡的性能,主要是收斂速度。爲提高學習速度,應採用大的。但太大卻可能導致在穩定點附近振盪,乃至不收斂。針對具體的網絡結構模型和學習樣本,都存在一個最佳的學習率和慣性因子,它們的取值範圍一般0~1之間,視實際情況而定。

        ②初始權值和閾值

        在前饋多層神經網絡的BP算法中,初始權、閾值一般是在一個固定範圍內按均勻分佈隨機產生的。一般認爲初始權值範圍爲-1~+1之間,初始權值的選擇對於局部極小點的防止和網絡收斂速度的提高均有一定程度的影響,如果初始權值範圍選擇不當,學習過程一開始就可能進入“假飽和”現象,甚至進入局部極小點,網絡根本不收斂。初始權、閾值的選擇因具體的網絡結構模式和訓練樣本不同而有所差別,一般應視實際情況而定。

        ③收斂誤差界值Emin

        在網絡訓練過程中應根據實際情況預先確定誤差界值。誤差界值的選擇完全根據網絡模型的收斂速度大小和具體樣本的學習精度來確定。當Emin值選擇較小時,學習效果好,但收斂速度慢,訓練次數增加。如果Emin值取得較大時則相反。

      參考文獻:

        [14] 樊龍江,生物信息學札記, 浙江大學生物信息學研究所,2005.04,87-90

        [30] 焦李成,神經網絡系統理論,西安:西安電子科技大學出版社,1995







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章