改進bp演算法
A. BP神經演算法是什麼能給點既通俗易懂又比較詳細的回答嗎
BP(Back Propagation)網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。
BP神經網路演算法是在BP神經網路現有演算法的基礎上提出的,是通過任意選定一組權值,將給定的目標輸出直接作為線性方程的代數和來建立線性方程組,解得待求權,不存在傳統方法的局部極小及收斂速度慢的問題,且更易理解。
1 傳統的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) 式中:dtk為輸出層的校正誤差;ejk為隱層的校正誤差。 (3)計算新的連接權及閥值,計算公式如下: vjt(n+1)=vjt(n)+?琢dtkbj wij(n+1)=wij(n)+?茁ejkaik rt(n+1)=rt(n)+?琢dtk θj(n+1)=θj(n)+?茁ejk 式中:?琢,?茁為學習系數(0<?琢<1,0<?茁<1)。 (4)選取下一個輸入模式對返回第2步反復訓練直到網路設輸出誤差達到要求結束訓練。 傳統的BP演算法,實質上是把一組樣本輸入/輸出問題轉化為一個非線性優化問題,並通過負梯度下降演算法,利用迭代運算求解權值問題的一種學習方法,但其收斂速度慢且容易陷入局部極小,為此提出了一種新的演算法,即高斯消元法。
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個神經元的權值,以求的輸出層的權矩陣加上隨機固定的隱層與輸入層的權值就等於神經網路最後訓練的權矩陣。
3 計算機運算實例
現以神經網路最簡單的XOR問題用VC編程運算進行比較(取神經網路結構為2-4-1型),傳統演算法和改進BP演算法的誤差(取動量因子α=0.001 5,步長η=1.653)
B. 為什麼我用遺傳演算法改進的BP還不如不改進呢
兩種可能:一是遺傳演算法程序編的有問題(前提是BP網路沒問題);二就是遺傳演算法的評價標准或者停止准則選擇不當。
C. 讀懂反向傳播演算法(bp演算法)
反向傳播演算法可以說是神經網路最基礎也是最重要的知識點。基本上所以的優化演算法都是在反向傳播算出梯度之後進行改進的。同時,也因為反向傳播演算法是一個遞歸的形式,一層一層的向後傳播誤差即可,很容易實現(這部分聽不懂沒關系,下面介紹)。不要被反向傳播嚇到,掌握其核心思想就很容易自己手推出來。
我們知道神經網路都是有一個loss函數的。這個函數根據不同的任務有不同的定義方式,但是這個loss函數的目的就是計算出當前神經網路建模出來輸出的數據和理想數據之間的距離。計算出loss之後,根據反向傳播演算法就可以更新網路中的各種參數以此使loss不斷下降,即可使輸出的數據更加理想。
所以,現在的任務是,已知一個網路的loss之後,如何根據loss來更新參數呢?具體點即如何更新網路節點中的權重w和偏差b的值呢?
這里我們採用的是全連接神經網路進行說明。
要想把這個過程說清楚,首先需要將神經網路中各個參數用文字表達清楚。定義的就是w和b在網路中的准確位置。
對於 表示的是神經網路中第 層第k個節點到神經網路中第 層第j個節點之間的權重。注意w的下標是首位表示的是節點後層節點的位置,末尾表示是前層節點的位置。理解這樣的表達方式在後面的計算中會很好理解。
同理,對於b的表示:
b的表示相比於w要簡單一些,符號 表示第l層網路在第j個節點的偏置。無論w還是b的表示,上標都是表示層數。並且 和 表示都是第l層網路第j個節點的參數。所以該節點的輸出可以表示為:
神經網路輸出之後會經過一個激活函數,這用激活函數用 表示,則經過激活函數輸出為:
至此,根據上面符號 、 、 、 。我們可以對於神經網路裡面每一個數據准確的表示了。
給定一個損失函數之後,用 表示,說白了反向傳播就是求∂C/∂w和∂C/∂b,然後將這個值乘以和對應的w,b進行相減就可以實現一次的參數更新了。為什麼這樣的操作就可以優化網路,減小loss值呢?
來源於導數的概念和速度相關。∂C/∂w和∂C/∂b相當於loss值C相對於w和v變化的速度。如果∂C/∂w是正的,則增大w,C也會增大,如果希望C減小的話,應該減小w;並且∂C/∂w的絕對值越大,表示w對C的值影響越大,w稍微有一點變化,C就會有大幅變化。如果要優化C變小,w應該對應的減少多少呢?也沒有一個確定的答案。這里通過變化的速度和學習率相乘作為一個減小的值。通過多輪迭代。最終是希望c達到最小點。而當函數落入最小值的時候,無論是局部最小還是全局最小,其周圍一定是平滑的。所以此時∂C/∂w和∂C/∂b將會變得很小甚至為0,即參數不在更新了。當函數在局部最小點處參數不在更新出現梯度消失的問題時,目前也有各種trick進行解決。不是這里的重點。
為了好說明,這里定義一個很簡單的損失函數C:
接下來就是有意思的階段了。這里還是利用上一節中∂C/∂w和∂C/∂b的解釋。如果我們想要求出∂C/∂w和∂C/∂b的值,即具體的 、 對C影響速率的值,我們找一個中間變數∂C/∂ 。因為我們知道:
我們定義:
當我們知道了 值之後,我們根據 式子可以很容易求出 。
利用導數的鏈式法則:
很容易推出來不是?同理可以求出:
可以看出通過媒介 很容易求出∂C/∂w和∂C/∂b。那麼我們現在來理解一下 到底是什麼意思,以及如何求出來每一個l層j節點的 值。
根據定義:
可以看出來 就是 對於C的影響大小(聯系之前說的導數和速率的關系)。而 是第 層第 個神經元未進過激活函數之前的輸出。所以我們可以理解 為網路中第 層第 個神經元對loss的影響。所以很直觀的看法就是我們先求出單個神經元對loss值得影響,然後再計算該神經元內部參數對於loss的影響。
ok,如果我們已經理解了為什麼要引入 變數以及如何利用該變數計算具體參數的梯度後,接下來我們就可以看看如何獲得 值。反向傳播的名字我想也就是通過計算 的方式而來的。是一層一層遞歸而來的。
既然說是遞歸的方式,我們來思考一下 和 之間有什麼關系,如果找到這個關系之後,我們就可以默認我們如果知道最後一層網路節點的 值,我們就可以獲得倒數第二層網路節點的 值,倒數第三層,倒數第四層,……以此推類即可獲得整個網路的每個節點的 值。至此我們的反向傳播也基本完成了。
所以最重要的有兩點:
先看問題1,直接根據求導的鏈式法則就可以找出兩個的關系,具體公式如下,可以多看看手寫一下,思路上也很簡單。
覺得這樣的鏈式公式還是很直觀的,如果不好理解,可以自己畫一個神經網路圖,連上節點與節點之間的線,標上參數,然後推一下應該就能理解了。
這里的 都表示的未經過激活函數的神經元的輸出。 表示激活函數。因為:
所以:
帶入上式就可以得出:
至此就找出了 和 之間的關系了。
(還能簡化,根據最開始我們定義的 )。
理解起來就是網路中前面一層某一個神經元對於loss的影響與該層的後一層所有的神經元對loss的影響、該神經元的輸出大小、該神經元與後一層神經元連接的權重有關系的,並且是一個累加的效應。這樣的理解也是非常直觀合乎常理的。
現在萬事具備,只差問題2了。即假設最後一層網路是L,最後一層 如何計算得出。最後一層的 值就像一個導火索,一旦有了開始,就可以利用我們之前推出來的: 公式進行反向傳播了(反向傳播還是很形象的不是?)。現在解決這個問題。這個問題就是和損失函數具體怎麼定義有關系了。不過我們先不考慮C的具體形式,根據通用的鏈式法則我們可以得到:
這里需要注意的是最後一層激活函數使用的是哪種。最後一層激活函數在計算某一個神經元的輸出時可能會結合其他節點的輸出來計算。比如softmax激活函數,其輸出的是一個概率值【0,1】。輸出大小就是結合輸出所有的值。
現在我們來考慮兩個具體的損失函數,並且採用之前定義的均方誤差損失函數 :
求導為:
因為sigmoid輸出的值僅僅和輸入的x值有關 。所以 當 時值為0.所以:
根據上面,BP推導有三部曲,先求出 ,再根據 分別求出 、 。總結公式如下:
啟動上面反傳的導火索是最後一層的 值,計算公式為:
根據最後一層不同類型的激活函數不同對待。
D. 基於改進的BP人工神經網路演算法的軟土地基沉降預測
改進的BP神經網路預測需要等間隔數據,利用Spline插值點進行建模。為了和前述方法的預測效果對比,仍選取550~665d(共24個樣本數據)的沉降量作為訓練樣本,預留 670~745d(共16個樣本數據)的沉降量作為對訓練好的BP人工神經網路的檢驗樣本。以每相鄰的連續4個沉降量(時間間隔Δt=5 d)作為一個輸入樣本(S1,S2,S3,S4),緊鄰的第5個沉降量作為目標樣本(S5),這樣,利用 2 4個原始數據點,構建了 21組訓練樣本輸入向量。每組訓練樣本的輸入層單元數為n=4,輸出層單元數為q=1,又隱層單元數p的確定公式為
溫州淺灘軟土工程特性及固結沉降規律研究
式中:a為1~10之間的常數。
由式(5.57)確定隱層神經元數為p=3~12。其具體值將通過BP人工神經網路訓練誤差來判斷,取網路誤差最小時對應的隱層神經元數。
本書基於MATLAB 7.1 編制了改進的BP神經網路程序,對標準的BP人工神經網路演算法採取了增加動量項法和自適應調節學習速率法兩點改進,此外,對輸入輸出數據進行了尺度變換(歸一化處理),變換後可防止因凈輸入的絕對值過大而使神經元輸出飽和,繼而使權值調整進入誤差曲面的平坦區。輸入輸出數據變換為[0,1]區間內的值的歸一化預處理變換式為
溫州淺灘軟土工程特性及固結沉降規律研究
式中:xi為輸入或輸出數據;xmin、xmax為最值;
B P神經網路模型的訓練曲線如圖5.1 7所示。
本書所建立的改進的B P神經網路模型之擬合/預測值與實測值列於表5.13,擬合/預測曲線與實測曲線對比如圖5.1 8所示,其殘差圖如圖5.19所示。
由表5.13 和圖5.1 8、5.19可知,改進的 B P 神經網路模型預測結果的平均殘差為0.1 cm,平均相對誤差為0.0 6%,擬合及預測效果很好。但是與前面幾種預測方法不同的是,改進的BP人工神經網路模型的預測值略小於實測值,隨著預測時間遠離訓練樣本,這將使結果偏於不安全,所以,建議該法用於短、中期預測。同時,為了使後期預測精度更高,應不斷更新訓練樣本向量集。
圖5.17 N5+850斷面 BP 神經網路訓練曲線
圖5.18 N5+850斷面改進的 BP人工神經網路模型預測曲線與實測曲線對比
圖5.19 N5+850斷面改進的 BP人工神經網路模型預測殘差圖
表5.13 改進的BP神經網路預測值與實測值對比
E. BP演算法及其改進
傳統的BP演算法及其改進演算法的一個很大缺點是:由於其誤差目標函數對於待學習的連接權值來說非凸的,存在局部最小點,對網路進行訓練時,這些演算法的權值一旦落入權值空間的局部最小點就很難跳出,因而無法達到全局最小點(即最優點)而使得網路訓練失敗。針對這些缺陷,根據凸函數及其共軛的性質,利用Fenchel不等式,使用約束優化理論中的罰函數方法構造出了帶有懲罰項的新誤差目標函數。
用新的目標函數對前饋神經網路進行優化訓練時,隱層輸出也作為被優化變數。這個目標函數的主要特點有:
1.固定隱層輸出,該目標函數對連接權值來說是凸的;固定連接權值,對隱層輸出來說是凸的。這樣在對連接權值和隱層輸出進行交替優化時,它們所面對的目標函數都是凸函數,不存在局部最小的問題,演算法對於初始權值的敏感性降低;
2.由於懲罰因子是逐漸增大的,使得權值的搜索空間變得比較大,從而對於大規模的網路也能夠訓練,在一定程度上降低了訓練過程陷入局部最小的可能性。
這些特性能夠在很大程度上有效地克服以往前饋網路的訓練演算法易於陷入局部最小而使網路訓練失敗的重大缺陷,也為利用凸優化理論研究前饋神經網路的學習演算法開創了一個新思路。在網路訓練時,可以對連接權值和隱層輸出進行交替優化。把這種新演算法應用到前饋神經網路訓練學習中,在學習速度、泛化能力、網路訓練成功率等多方面均優於傳統訓練演算法,如經典的BP演算法。數值試驗也表明了這一新演算法的有效性。
本文通過典型的BP演算法與新演算法的比較,得到了二者之間相互關系的初步結論。從理論上證明了當懲罰因子趨於正無窮大時新演算法就是BP演算法,並且用數值試驗說明了懲罰因子在網路訓練演算法中的作用和意義。對於三層前饋神經網路來說,懲罰因子較小時,隱層神經元局部梯度的可變范圍大,有利於連接權值的更新;懲罰因子較大時,隱層神經元局部梯度的可變范圍小,不利於連接權值的更新,但能提高網路訓練精度。這說明了在網路訓練過程中懲罰因子為何從小到大變化的原因,也說明了新演算法的可行性而BP演算法則時有無法更新連接權值的重大缺陷。
礦體預測在礦床地質中佔有重要地位,由於輸入樣本量大,用以往前饋網路演算法進行礦體預測效果不佳。本文把前饋網路新演算法應用到礦體預測中,取得了良好的預期效果。
本文最後指出了新演算法的優點,並指出了有待改進的地方。
關鍵詞:前饋神經網路,凸優化理論,訓練演算法,礦體預測,應用
Feed forward Neural Networks Training Algorithm Based on Convex Optimization and Its Application in Deposit Forcasting
JIA Wen-chen (Computer Application)
Directed by YE Shi-wei
Abstract
The paper studies primarily the application of convex optimization theory and algorithm for feed forward neural networks』 training and convergence performance.
It reviews the history of feed forward neural networks, points out that the training of feed forward neural networks is essentially a non-linear problem and introces BP algorithm, its advantages as well as disadvantages and previous improvements for it. One of the big disadvantages of BP algorithm and its improvement algorithms is: because its error target function is non-convex in the weight values between neurons in different layers and exists local minimum point, thus, if the weight values enter local minimum point in weight values space when network is trained, it is difficult to skip local minimum point and reach the global minimum point (i.e. the most optimal point).If this happening, the training of networks will be unsuccessful. To overcome these essential disadvantages, the paper constructs a new error target function including restriction item according to convex function, Fenchel inequality in the conjugate of convex function and punishment function method in restriction optimization theory.
When feed forward neural networks based on the new target function is being trained, hidden layers』 outputs are seen as optimization variables. The main characteristics of the new target function are as follows:
1.With fixed hidden layers』 outputs, the new target function is convex in connecting weight variables; with fixed connecting weight values, the new target function is convex in hidden layers』 outputs. Thus, when connecting weight values and hidden layers』 outputs are optimized alternately, the new target function is convex in them, doesn』t exist local minimum point, and the algorithm』s sensitiveness is reced for original weight values .
2.Because the punishment factor is increased graally, weight values 』 searching space gets much bigger, so big networks can be trained and the possibility of entering local minimum point can be reced to a certain extent in network training process.
Using these characteristics can overcome efficiently in the former feed forward neural networks』 training algorithms the big disadvantage that networks training enters local minimum point easily. This creats a new idea for feed forward neural networks』 learning algorithms by using convex optimization theory .In networks training, connecting weight variables and hidden layer outputs can be optimized alternately. The new algorithm is much better than traditional algorithms for feed forward neural networks. The numerical experiments show that the new algorithm is successful.
By comparing the new algorithm with the traditional ones, a primary conclusion of their relationship is reached. It is proved theoretically that when the punishment factor nears infinity, the new algorithm is BP algorithm yet. The meaning and function of the punishment factor are also explained by numerical experiments. For three-layer feed forward neural networks, when the punishment factor is smaller, hidden layer outputs』 variable range is bigger and this is in favor to updating of the connecting weights values, when the punishment factor is bigger, hidden layer outputs』 variable range is smaller and this is not in favor to updating of the connecting weights values but it can improve precision of networks. This explains the reason that the punishment factor should be increased graally in networks training process. It also explains feasibility of the new algorithm and BP algorithm』s disadvantage that connecting weigh values can not be updated sometimes.
Deposit forecasting is very important in deposit geology. The previous algorithms』 effect is not good in deposit forecasting because of much more input samples. The paper applies the new algorithm to deposit forecasting and expectant result is reached.
The paper points out the new algorithm』s strongpoint as well as to-be-improved places in the end.
Keywords: feed forward neural networks, convex optimization theory, training algorithm, deposit forecasting, application
傳統的BP演算法及其改進演算法的一個很大缺點是:由於其誤差目標函數對於待學習的連接權值來說非凸的,存在局部最小點,對網路進行訓練時,這些演算法的權值一旦落入權值空間的局部最小點就很難跳出,因而無法達到全局最小點(即最優點)而使得網路訓練失敗。針對這些缺陷,根據凸函數及其共軛的性質,利用Fenchel不等式,使用約束優化理論中的罰函數方法構造出了帶有懲罰項的新誤差目標函數。
用新的目標函數對前饋神經網路進行優化訓練時,隱層輸出也作為被優化變數。這個目標函數的主要特點有:
1.固定隱層輸出,該目標函數對連接權值來說是凸的;固定連接權值,對隱層輸出來說是凸的。這樣在對連接權值和隱層輸出進行交替優化時,它們所面對的目標函數都是凸函數,不存在局部最小的問題,演算法對於初始權值的敏感性降低;
2.由於懲罰因子是逐漸增大的,使得權值的搜索空間變得比較大,從而對於大規模的網路也能夠訓練,在一定程度上降低了訓練過程陷入局部最小的可能性。
這些特性能夠在很大程度上有效地克服以往前饋網路的訓練演算法易於陷入局部最小而使網路訓練失敗的重大缺陷,也為利用凸優化理論研究前饋神經網路的學習演算法開創了一個新思路。在網路訓練時,可以對連接權值和隱層輸出進行交替優化。把這種新演算法應用到前饋神經網路訓練學習中,在學習速度、泛化能力、網路訓練成功率等多方面均優於傳統訓練演算法,如經典的BP演算法。數值試驗也表明了這一新演算法的有效性。
本文通過典型的BP演算法與新演算法的比較,得到了二者之間相互關系的初步結論。從理論上證明了當懲罰因子趨於正無窮大時新演算法就是BP演算法,並且用數值試驗說明了懲罰因子在網路訓練演算法中的作用和意義。對於三層前饋神經網路來說,懲罰因子較小時,隱層神經元局部梯度的可變范圍大,有利於連接權值的更新;懲罰因子較大時,隱層神經元局部梯度的可變范圍小,不利於連接權值的更新,但能提高網路訓練精度。這說明了在網路訓練過程中懲罰因子為何從小到大變化的原因,也說明了新演算法的可行性而BP演算法則時有無法更新連接權值的重大缺陷。
礦體預測在礦床地質中佔有重要地位,由於輸入樣本量大,用以往前饋網路演算法進行礦體預測效果不佳。本文把前饋網路新演算法應用到礦體預測中,取得了良好的預期效果。
本文最後指出了新演算法的優點,並指出了有待改進的地方。
關鍵詞:前饋神經網路,凸優化理論,訓練演算法,礦體預測,應用
Feed forward Neural Networks Training Algorithm Based on Convex Optimization and Its Application in Deposit Forcasting
JIA Wen-chen (Computer Application)
Directed by YE Shi-wei
Abstract
The paper studies primarily the application of convex optimization theory and algorithm for feed forward neural networks』 training and convergence performance.
It reviews the history of feed forward neural networks, points out that the training of feed forward neural networks is essentially a non-linear problem and introces BP algorithm, its advantages as well as disadvantages and previous improvements for it. One of the big disadvantages of BP algorithm and its improvement algorithms is: because its error target function is non-convex in the weight values between neurons in different layers and exists local minimum point, thus, if the weight values enter local minimum point in weight values space when network is trained, it is difficult to skip local minimum point and reach the global minimum point (i.e. the most optimal point).If this happening, the training of networks will be unsuccessful. To overcome these essential disadvantages, the paper constructs a new error target function including restriction item according to convex function, Fenchel inequality in the conjugate of convex function and punishment function method in restriction optimization theory.
When feed forward neural networks based on the new target function is being trained, hidden layers』 outputs are seen as optimization variables. The main characteristics of the new target function are as follows:
1.With fixed hidden layers』 outputs, the new target function is convex in connecting weight variables; with fixed connecting weight values, the new target function is convex in hidden layers』 outputs. Thus, when connecting weight values and hidden layers』 outputs are optimized alternately, the new target function is convex in them, doesn』t exist local minimum point, and the algorithm』s sensitiveness is reced for original weight values .
2.Because the punishment factor is increased graally, weight values 』 searching space gets much bigger, so big networks can be trained and the possibility of entering local minimum point can be reced to a certain extent in network training process.
Using these characteristics can overcome efficiently in the former feed forward neural networks』 training algorithms the big disadvantage that networks training enters local minimum point easily. This creats a new idea for feed forward neural networks』 learning algorithms by using convex optimization theory .In networks training, connecting weight variables and hidden layer outputs can be optimized alternately. The new algorithm is much better than traditional algorithms for feed forward neural networks. The numerical experiments show that the new algorithm is successful.
By comparing the new algorithm with the traditional ones, a primary conclusion of their relationship is reached. It is proved theoretically that when the punishment factor nears infinity, the new algorithm is BP algorithm yet. The meaning and function of the punishment factor are also explained by numerical experiments. For three-layer feed forward neural networks, when the punishment factor is smaller, hidden layer outputs』 variable range is bigger and this is in favor to updating of the connecting weights values, when the punishment factor is bigger, hidden layer outputs』 variable range is smaller and this is not in favor to updating of the connecting weights values but it can improve precision of networks. This explains the reason that the punishment factor should be increased graally in networks training process. It also explains feasibility of the new algorithm and BP algorithm』s disadvantage that connecting weigh values can not be updated sometimes.
Deposit forecasting is very important in deposit geology. The previous algorithms』 effect is not good in deposit forecasting because of much more input samples. The paper applies the new algorithm to deposit forecasting and expectant result is reached.
The paper points out the new algorithm』s strongpoint as well as to-be-improved places in the end.
Keywords: feed forward neural networks, convex optimization theory, training algorithm, deposit forecasting, application
BP演算法及其改進
2.1 BP演算法步驟
1°隨機抽取初始權值ω0;
2°輸入學習樣本對(Xp,Yp),學習速率η,誤差水平ε;
3°依次計算各層結點輸出opi,opj,opk;
4°修正權值ωk+1=ωk+ηpk,其中pk=,ωk為第k次迭代權變數;
5°若誤差E<ε停止,否則轉3°。
2.2 最優步長ηk的確定
在上面的演算法中,學習速率η實質上是一個沿負梯度方向的步長因子,在每一次迭代中如何確定一個最優步長ηk,使其誤差值下降最快,則是典型的一維搜索問題,即E(ωk+ηkpk)=(ωk+ηpk)。令Φ(η)=E(ωk+ηpk),則Φ′(η)=dE(ωk+ηpk)/dη=E(ωk+ηpk)Tpk。若ηk為(η)的極小值點,則Φ′(ηk)=0,即E(ωk+ηpk)Tpk=-pTk+1pk=0。確定ηk的演算法步驟如下
1°給定η0=0,h=0.01,ε0=0.00001;
2°計算Φ′(η0),若Φ′(η0)=0,則令ηk=η0,停止計算;
3°令h=2h, η1=η0+h;
4°計算Φ′(η1),若Φ′(η1)=0,則令ηk=η1,停止計算;
若Φ′(η1)>0,則令a=η0,b=η1;若Φ′(η1)<0,則令η0=η1,轉3°;
5°計算Φ′(a),若Φ′(a)=0,則ηk=a,停止計算;
6°計算Φ′(b),若Φ′(b)=0,則ηk=b,停止計算;
7°計算Φ′(a+b/2),若Φ′(a+b/2)=0,則ηk=a+b/2,停止計算;
若Φ′(a+b/2)<0,則令a=a+b/2;若Φ′(a+b/2)>0,則令b=a+b/2
8°若|a-b|<ε0,則令,ηk=a+b/2,停止計算,否則轉7°。
2.3 改進BP演算法的特點分析
在上述改進的BP演算法中,對學習速率η的選取不再由用戶自己確定,而是在每次迭代過程中讓計算機自動尋找最優步長ηk。而確定ηk的演算法中,首先給定η0=0,由定義Φ(η)=E(ωk+ηpk)知,Φ′(η)=dE(ωk+ηpk)/dη=E(ωk+ηpk)Tpk,即Φ′(η0)=-pTkpk≤0。若Φ′(η0)=0,則表明此時下降方向pk為零向量,也即已達到局部極值點,否則必有Φ′(η0)<0,而對於一維函數Φ(η)的性質可知,Φ′(η0)<0則在η0=0的局部范圍內函數為減函數。故在每一次迭代過程中給η0賦初值0是合理的。
改進後的BP演算法與原BP演算法相比有兩處變化,即步驟2°中不需給定學習速率η的值;另外在每一次修正權值之前,即步驟4°前已計算出最優步長ηk。