邢蕾+趙鵬飛



摘 要:BP神經網絡是誤差反向傳播神經網絡的簡稱,是一種常用的人工智能算法。它具有非常高的求解精度,同時也具有很強的非線性。人們在學習和理解BP神經網絡時,往往會忽略BP神經網絡的動力學機制和數學運算細節。該文給出了BP神經網絡的一個解析算例,剖析了算法的重要細節,這有助于從事人工智能算法研究或希望應用神經網絡算法解決實際問題的初學者,更準確和更全面地理解神經網絡理論。
關鍵詞:BP 神經網絡 解析 理論
中圖分類號:TP391 文獻標識碼:A 文章編號:1674-098X(2016)09(a)-0090-03
因為具有非常強的非線性,人們在學習BP神經網絡時,往往會忽略它的動力學機制和數學運算細節,而只關注于調用相關函數,盲目地用于解決一些實際問題。這個問題成為了阻礙神經網絡理論發展和應用的關鍵所在。該文將從基本理論、算法步驟、梯度下降算法的實現、BP神經網絡的解析算例4個方面進行論述。這有助于從事人工智能算法研究或希望應用神經網絡算法解決實際問題的初學者,更準確和更全面地理解神經網絡理論。
1 基本理論
神經網絡是一種非常重要的人工智能算法[1]。BP神經網絡是最常用的神經網絡算法,是誤差反向傳播(Error Back Propagation)神經網絡的簡稱,是一種按誤差逆傳播算法訓練的多層前饋網絡[2,3]。
BP算法的基本思想是訓練過程由信號的正向傳播和反向傳播兩個過程組成的。當信號正向傳播時,輸入樣本從輸入層傳入,經隱層逐步處理后,傳向輸出層。如果在輸出層中實際輸出值與期望輸出值不符,則轉入誤差的方向傳播過程,并依此往復。
誤差的反向傳播是將誤差輸出給隱層,再向輸入層反傳。在整個反傳過程中,誤差分攤到各層的所有單元,從而得到各層單元的誤差信號,并以此作為修正各單元權值的依據。權值不斷修正的過程,也就是網絡接受學習和訓練的過程,當神經網絡的輸出誤差減小到某個可接受的程度,或進行到預先規定好的學習次數時,整個計算過程終止。
2 BP神經網絡的算法步驟
(1)神經網絡參數的初始化:給各連接權值分別賦一個區間(-1,1)內的隨機數,設定誤差函數的數學表達式E,給定計算精度和最大學習次數M;
(2)隨機選取第k個輸入樣本及對應的期望輸出:
(3)計算隱層各神經元的輸入和輸出;
(4)計算輸出層個神經元的輸出(神經網絡的總輸出);
(5)利用神經網絡期望輸出和實際輸出,計算誤差函數對輸出層的各神經元輸出誤差的偏導數
(6)利用神經網絡輸出值關于隱層到輸出層的連接權值的偏導數;
(7)同理,求得網絡輸出誤差關于輸入層與隱層權值的偏導數;
(8)利用和來修正兩種連接權Tki和;
(9)計算全局誤差E,并判斷網絡誤差是否滿足精度要求。當誤差達到預設精度或學習次數大于設定的最大迭代次數,則結束程序;否則,返回第(3)步,選擇下一個學習樣本及對應的期望輸出,進入下一輪學習。
3 梯度下降算法的實現
結合梯度下降算法[4]的實現過程,我們以BP神經網絡為例,詳細介紹神經網絡的原理和實現過程。
對于一個n維值函數而言,若采用梯度下降算法計算其極小值,需要選擇一個初始點,如果該點對應的非極小值,則必須對進行修正,并得到。
重復上述過程,在計算得到(x2,y2),直到第n步。當或時,結束循環,并輸出(xn,yn)。
極小值點的計算精度由η的取值決定。
4 BP神經網絡算法的解析算例
對于BP神經網絡而言,其實現過程與極小值問題的梯度下降算法的本質是一致的,區別之處只在于對初始點坐標的調整過程。在梯度下降算法中,初始點的調整是正向的,即由初始點坐標決定調整方向(該點處的負梯度方向);在BP神經網絡中,初始點(初始權值)的調整是反向的,即由誤差函數關于各權變量的導數,對權值進行調整。
再舉一個關于BP神經網絡的簡單例子,給定神經網絡的拓撲結構圖如圖1所示,其中,輸入層具有兩個神經元A和B,隱層具有兩個神經元C和D;輸入樣本為A=0.3,B=0.6,初始權值為:AC=0.1,BC=0.8,AD=0.5,BD=0.4,CE=0.4,DE=0.6。
可見,經調整的權值可以用輸出的全局誤差減小,往復這個迭代過程,我們將得到最佳的權值。
參考文獻
[1] 李成.神經網絡系統理論[M].西安電子科技大學出版社,1990.
[2] 戚德虎.BP神經網絡的設計[J].計算機工程與設計,1998,19(2):48-50.
[3] Hecht-Nielsen R.Theory of the backpropagation neural network[J].Harcourt Brace &Co.,1992,1(1):593-605.
[4] 閻平凡,張長水.人工神經網絡與模擬進化計算[M].清華大學出版社有限公司,2005.