① 什麼是神經網路的BP演算法
BP演算法,即誤差反向傳播演算法,是由Rumelhart和McCelland在1986年提出的一種多層前饋網路訓練方法。它通過調整網路權重和閾值,使得網路的誤差平方和最小。BP網路能自動學習和存儲大量輸入-輸出模式映射關系,無需事先揭示這種映射關系的數學公式。
BP演算法是一種監督學習演算法,其主要步驟包括:首先初始化網路權重和閾值,然後通過輸入學習樣本,計算各層單元輸出,接著計算誤差並調整權重和閾值。具體而言,通過反向傳播計算各層的校正誤差,再利用學習系數更新權重和閾值,直至網路輸出誤差滿足要求。
傳統的BP演算法存在收斂速度慢和易陷入局部極小的問題。為了解決這些問題,引入了高斯消元法作為改進演算法。高斯消元法通過解線性方程組來直接計算待求權重,避免了傳統方法中的局部極小問題和收斂速度慢的問題。
人工神經網路系統具有大規模並行處理、分布式信息存儲和良好的自組織自學習能力,尤其在信息處理、模式識別、智能控制及系統建模等領域應用廣泛。誤差反向傳播演算法因其逼近任意連續函數的能力和非線性映射能力,在許多應用領域中起到了重要作用。
近年來,針對BP神經網路的缺陷,提出了許多改進演算法。這些演算法旨在提高網路的收斂速度、保證收斂到全局最小點、優化網路中間層及單元數的選取,以及增強網路的學習和記憶穩定性。
高斯消元法作為一種改進演算法,通過解線性方程組直接計算待求權重,解決了傳統BP演算法中的局部極小和收斂速度慢的問題,使得網路訓練更為高效。
② BP神經網路演算法的關鍵詞
BP演算法是一種有監督式的學習演算法,其主要思想是:輸入學習樣本,使用反向傳播演算法對網路的權值和偏差進行反復的調整訓練,使輸出的向量與期望向量盡可能地接近,當網路輸出層的誤差平方和小於指定的誤差時訓練完成,保存網路的權值和偏差。具體步驟如下:
(1)初始化,隨機給定各連接權[w],[v]及閥值θi,rt。
(2)由給定的輸入輸出模式對計算隱層、輸出層各單元輸出
bj=f(■wijai-θj) ct=f(■vjtbj-rt)
式中:bj為隱層第j個神經元實際輸出;ct為輸出層第t個神經元的實際輸出;wij為輸入層至隱層的連接權;vjt為隱層至輸出層的連接權。
dtk=(ytk-ct)ct(1-ct) ejk=[■dtvjt] bj(1-bj)
(3)選取下一個輸入模式對返回第2步反復訓練直到網路設輸出誤差達到要求結束訓練。
傳統的BP演算法,實質上是把一組樣本輸入/輸出問題轉化為一個非線性優化問題,並通過負梯度下降演算法,利用迭代運算求解權值問題的一種學習方法,但其收斂速度慢且容易陷入局部極小,為此提出了一種新的演算法,即高斯消元法。 2.1 改進演算法概述
此前有人提出:任意選定一組自由權,通過對傳遞函數建立線性方程組,解得待求權。本文在此基礎上將給定的目標輸出直接作為線性方程等式代數和來建立線性方程組,不再通過對傳遞函數求逆來計算神經元的凈輸出,簡化了運算步驟。沒有採用誤差反饋原理,因此用此法訓練出來的神經網路結果與傳統演算法是等效的。其基本思想是:由所給的輸入、輸出模式對通過作用於神經網路來建立線性方程組,運用高斯消元法解線性方程組來求得未知權值,而未採用傳統BP網路的非線性函數誤差反饋尋優的思想。
2.2 改進演算法的具體步驟
對給定的樣本模式對,隨機選定一組自由權,作為輸出層和隱含層之間固定權值,通過傳遞函數計算隱層的實際輸出,再將輸出層與隱層間的權值作為待求量,直接將目標輸出作為等式的右邊建立方程組來求解。
現定義如下符號(見圖1):x (p)輸入層的輸入矢量;y (p)輸入層輸入為x (p)時輸出層的實際輸出矢量;t (p)目標輸出矢量;n,m,r分別為輸入層、隱層和輸出層神經元個數;W為隱層與輸入層間的權矩陣;V為輸出層與隱層間的權矩陣。具體步驟如下:
(1)隨機給定隱層和輸入層間神經元的初始權值wij。
(2)由給定的樣本輸入xi(p)計算出隱層的實際輸出aj(p)。為方便起見將圖1網路中的閥值寫入連接權中去,令:隱層閥值θj=wnj,x(n)=-1,則:
aj(p)=f(■wijxi(p)) (j=1,2…m-1)。
(3)計算輸出層與隱層間的權值vjr。以輸出層的第r個神經元為對象,由給定的輸出目標值tr(p)作為等式的多項式值建立方程,用線性方程組表示為:
a0(1)v1r+a1(1)v2r+…+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+…+am(2)vmr=tr(2) ……a0(p)v1r+a1(p)v2r+…+am(p)vmr=tr(p) 簡寫為: Av=T
為了使該方程組有唯一解,方程矩陣A為非奇異矩陣,其秩等於其增廣矩陣的秩,即:r(A)=r(A┊B),且方程的個數等於未知數的個數,故取m=p,此時方程組的唯一解為: Vr=[v0r,v2r,…vmr](r=0,1,2…m-1)
(4)重復第三步就可以求出輸出層m個神經元的權值,以求的輸出層的權矩陣加上隨機固定的隱層與輸入層的權值就等於神經網路最後訓練的權矩陣。 現以神經網路最簡單的XOR問題用VC編程運算進行比較(取神經網路結構為2-4-1型),傳統演算法和改進BP演算法的誤差(取動量因子α=0.001 5,步長η=1.653)