『壹』 BP神經網路的梳理
BP神經網路被稱為「深度學習之旅的開端」,是神經網路的入門演算法。
各種高大上的神經網路都是基於BP網路出發的,最基礎的原理都是由BP網路而來 [1] ,另外由於BP神經網路結構簡單,演算法經典, 是神經網路中應用最廣泛的一種。
BP神經網路(back propagation neural network)全稱是反向傳播神經網路。
神經網路發展部分背景如下 [2] :
為解決非線性問題,BP神經網路應運而生。
那麼什麼是BP神經網路?稍微專業點的解釋要怎麼說呢?
很喜歡 最簡單的神經網路--Bp神經網路 一文對演算法原理的解釋,語言活潑,案例簡單,由淺入深。
文中提到所謂的 AI 技術,本質上是一種數據處理處理技術,它的強大來自於兩方面:1.互聯網的發展帶來的海量數據信息;2.計算機深度學習演算法的快速發展。AI 其實並沒有什麼神秘,只是在演算法上更為復雜 [3] 。
我們從上面的定義出發來解釋BP神經網路的原理。
BP神經網路整個網路結構包含了:一層輸入層,一到多層隱藏層,一層輸出層。
一般說L層神經網路,指的是有L個隱層,輸入層和輸出層都不計算在內的 [6] 。
BP神經網路模型訓練的學習過程由信號的 正向傳播 和誤差的 反向傳播 兩個過程組成。
什麼是信號的正向傳播?顧名思義,就是結構圖從左到右的運算過程。
我們來看看結構圖中每個小圓圈是怎麼運作的。我們把小圈圈叫做神經元,是組成神經網路的基本單元。
正向傳播就是輸入數據經過一層一層的神經元運算、輸出的過程,最後一層輸出值作為演算法預測值y'。
前面正向傳播的時候我們提到權重w、偏置b,但我們並不知道權重w、偏置b的值應該是什麼。關於最優參數的求解,我們在 線性回歸 、 邏輯回歸 兩章中有了詳細說明。大致來講就是:
BP神經網路全稱 back propagation neural network,back propagation反向傳播是什麼?
反向傳播的建設本質上就是尋找最優的參數組合,和上面的流程差不多,根據演算法預測值和實際值之間的損失函數L(y',y),來反方向地計算每一層的z、a、w、b的偏導數,從而更新參數。
對反向傳播而言,輸入的內容是預測值和實際值的誤差,輸出的內容是對參數的更新,方向是從右往左,一層一層的更新每一層的參數。
BP神經網路通過先正向傳播,構建參數和輸入值的關系,通過預測值和實際值的誤差,反向傳播修復權重;讀入新數據再正向傳播預測,再反向傳播修正,...,通過多次循環達到最小損失值,此時構造的模型擁有最優的參數組合。
以一個簡單的BP神經網路為例,由3個輸入層,2層隱藏層,每層2個神經元,1個輸出層組成。
【輸入層】傳入
【第一層隱藏層】
對於 神經元而言,傳入 ,加權求和加偏置激活函數處理後,輸出 ;
對於 神經元而言,傳入 ,加權求和加偏置函數處理後,輸出 ;
輸出:
【第二層隱藏層】
對於 神經元而言,傳入 ,加權求和加偏置激活函數處理後,輸出 ;
對於 神經元而言,傳入 ,加權求和加偏置激活函數處理後,輸出 ;
輸出:
【輸出層】
對於輸出層神經元而言,輸入 ,加權求和加偏置激活函數處理後,輸出 ,輸出的是一個值
第一次運行正向傳播這個流程時隨用隨機參數就好,通過反向傳播不斷優化。因此需要在一開始對 設置一個隨機的初始值。
首先計算正向傳播輸出值 與實際值的損失 ,是一個數值。所謂反向是從右到左一步步來的,先回到 ,修正參數 。
以此類推,通過對損失函數求偏導跟新參數 ,再跟新參數 。這時又回到了起點,新的數據傳入又可以開始正向傳播了。
keras可以快速搭建神經網路,例如以下為輸入層包含7129個結點,一層隱藏層,包含128個結點,一個輸出層,是二分類模型。
神經網路反向傳播的優化目標為loss,可以觀察到loss的值在不斷的優化。
可以通過model.get_layer().get_weights()獲得每一層訓練後的參數結果。通過model.predict()預測新數據。
至此,BP神經網路的整個運算流程已經過了一遍。之前提到BP神經網路是為解決非線性問題應運而生的,那麼為什麼BP神經網路可以解決非線性問題呢?
還記得神經元里有一個激活函數的操作嗎?神經網路通過激活函數的使用加入非線性因素。
通過使用非線性的激活函數可以使神經網路隨意逼近復雜函數,從而使BP神經網路既可以處理線性問題,也可以處理非線性問題。
為什麼激活函數的使用可以加入非線性因素 [7] ?
其實邏輯回歸演算法可以看作只有一個神經元的單層神經網路,只對線性可分的數據進行分類。
輸入參數,加權求和,sigmoid作為激活函數計算後輸出結果,模型預測值和實際值計算損失Loss,反向傳播梯度下降求編導,獲得最優參數。
BP神經網路是比 Logistic Regression 復雜得多的模型,它的擬合能力很強,可以處理很多 Logistic Regression處理不了的數據,但是也更容易過擬合。
具體用什麼演算法還是要看訓練數據的情況,沒有一種演算法是使用所有情況的。
常見的前饋神經網路有BP網路,RBF網路等。
BP神經網路的一個主要問題是:結構不好設計。
網路隱含層的層數和單元數的選擇尚無理論上的指導,一般是根據經驗或者通過反復實驗確定。
但是BP神經網路簡單、易行、計算量小、並行性強,目前仍是多層前向網路的首選演算法。
[1] 深度學習開端---BP神經網路: https://blog.csdn.net/Chile_Wang/article/details/100557010
[2] BP神經網路發展歷史: https://zhuanlan.hu.com/p/47998728
[3] 最簡單的神經網路--Bp神經網路: https://blog.csdn.net/weixin_40432828/article/details/82192709
[4] 神經網路的基本概念: https://blog.csdn.net/jinyuan7708/article/details/82466653
[5] 神經網路中的 「隱藏層」 理解: https://blog.csdn.net/nanhuaibeian/article/details/100183000
[6] AI學習筆記:神經元與神經網路: https://www.jianshu.com/p/65eb2fce0e9e
[7] 線性模型和非線性模型的區別: https://www.cnblogs.com/toone/p/8574294.html
[8] BP神經網路是否優於logistic回歸: https://www.hu.com/question/27823925/answer/38460833
『貳』 BP神經網路(誤差反傳網路)
雖然每個人工神經元很簡單,但是只要把多個人工
神經元按一定方式連接起來就構成了一個能處理復雜信息的神經網路。採用BP演算法的多層前饋網路是目前應用最廣泛的神經網路,稱之為BP神經網路。它的最大功能就是能映射復雜的非線性函數關系。
對於已知的模型空間和數據空間,我們知道某個模型和他對應的數據,但是無法寫出它們之間的函數關系式,但是如果有大量的一一對應的模型和數據樣本集合,利用BP神經網路可以模擬(映射)它們之間的函數關系。
一個三層BP網路如圖8.11所示,分為輸入層、隱層、輸出層。它是最常用的BP網路。理論分析證明三層網路已經能夠表達任意復雜的連續函數關系了。只有在映射不連續函數時(如鋸齒波)才需要兩個隱層[8]。
圖8.11中,X=(x1,…,xi,…,xn)T為輸入向量,如加入x0=-1,可以為隱層神經元引入閥值;隱層輸出向量為:Y=(y1,…,yi,…,ym)T,如加入y0=-1,可以為輸出層神經元引入閥值;輸出層輸出向量為:O=(o1,…,oi,…,ol)T;輸入層到隱層之間的權值矩陣用V表示,V=(V1,…,Vj,…,Vl)T,其中列向量Vj表示隱層第j個神經元的權值向量;隱層到輸出層之間的權值矩陣用W表示,W=(W1,…,Wk,…,Wl)T,
其中列向量Wk表示輸出層第k個神經元的權值向量。
圖8.11 三層BP網路[8]
BP演算法的基本思想是:預先給定一一對應的輸入輸出樣本集。學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,輸入樣本從輸入層傳入,經過各隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉入誤差的反向傳播。將輸出誤差以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有神經元,獲得各層的誤差信號,用它們可以對各層的神經元的權值進行調整(關於如何修改權值參見韓立群著作[8]),循環不斷地利用輸入輸出樣本集進行權值調整,以使所有輸入樣本的輸出誤差都減小到滿意的精度。這個過程就稱為網路的學習訓練過程。當網路訓練完畢後,它相當於映射(表達)了輸入輸出樣本之間的函數關系。
在地球物理勘探中,正演過程可以表示為如下函數:
d=f(m) (8.31)
它的反函數為
m=f-1(d) (8.32)
如果能夠獲得這個反函數,那麼就解決了反演問題。一般來說,難以寫出這個反函數,但是我們可以用BP神經網路來映射這個反函數m=f-1(d)。對於地球物理反問題,如果把觀測數據當作輸入數據,模型參數當作輸出數據,事先在模型空間隨機產生大量樣本進行正演計算,獲得對應的觀測數據樣本,利用它們對BP網路進行訓練,則訓練好的網路就相當於是地球物理數據方程的反函數。可以用它進行反演,輸入觀測數據,網路就會輸出它所對應的模型。
BP神經網路在能夠進行反演之前需要進行學習訓練。訓練需要大量的樣本,產生這些樣本需要大量的正演計算,此外在學習訓練過程也需要大量的時間。但是BP神經網路一旦訓練完畢,在反演中的計算時間可以忽略。
要想使BP神經網路比較好地映射函數關系,需要有全面代表性的樣本,但是由於模型空間的無限性,難以獲得全面代表性的樣本集合。用這樣的樣本訓練出來的BP網路,只能反映樣本所在的較小范圍數據空間和較小范圍模型空間的函數關系。對於超出它們的觀測數據就無法正確反演。目前BP神經網路在一維反演有較多應用,在二維、三維反演應用較少,原因就是難以產生全面代表性的樣本空間。
『叄』 什麼是BP神經網路
誤差反向傳播(Error Back Propagation, BP)演算法
1、BP演算法的基本思想是,學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。
1)正向傳播:輸入樣本->輸入層->各隱層(處理)->輸出層
注1:若輸出層實際輸出與期望輸出(教師信號)不符,則轉入2)(誤差反向傳播過程)
2)誤差反向傳播:輸出誤差(某種形式)->隱層(逐層)->輸入層
其主要目的是通過將輸出誤差反傳,將誤差分攤給各層所有單元,從而獲得各層單元的誤差信號,進而修正各單元的權值(其過程,是一個權值調整的過程)。
注2:權值調整的過程,也就是網路的學習訓練過程(學習也就是這么的由來,權值調整)。
2、BP演算法實現步驟(軟體):
1)初始化
2)輸入訓練樣本對,計算各層輸出
3)計算網路輸出誤差
4)計算各層誤差信號
5)調整各層權值
6)檢查網路總誤差是否達到精度要求
滿足,則訓練結束;不滿足,則返回步驟2)
3、多層感知器(基於BP演算法)的主要能力:
1)非線性映射:足夠多樣本->學習訓練
能學習和存儲大量輸入-輸出模式映射關系。只要能提供足夠多的樣本模式對供BP網路進行學習訓練,它便能完成由n維輸入空間到m維輸出空間的非線性映射。
2)泛化:輸入新樣本(訓練時未有)->完成正確的輸入、輸出映射
3)容錯:個別樣本誤差不能左右對權矩陣的調整
4、標准BP演算法的缺陷:
1)易形成局部極小(屬貪婪演算法,局部最優)而得不到全局最優;
2)訓練次數多使得學習效率低下,收斂速度慢(需做大量運算);
3)隱節點的選取缺乏理論支持;
4)訓練時學習新樣本有遺忘舊樣本趨勢。
注3:改進演算法—增加動量項、自適應調整學習速率(這個似乎不錯)及引入陡度因子
『肆』 BP人工神經網路
人工神經網路(artificialneuralnetwork,ANN)指由大量與自然神經系統相類似的神經元聯結而成的網路,是用工程技術手段模擬生物網路結構特徵和功能特徵的一類人工系統。神經網路不但具有處理數值數據的一般計算能力,而且還具有處理知識的思維、學習、記憶能力,它採用類似於「黑箱」的方法,通過學習和記憶,找出輸入、輸出變數之間的非線性關系(映射),在執行問題和求解時,將所獲取的數據輸入到已經訓練好的網路,依據網路學到的知識進行網路推理,得出合理的答案與結果。
岩土工程中的許多問題是非線性問題,變數之間的關系十分復雜,很難用確切的數學、力學模型來描述。工程現場實測數據的代表性與測點的位置、范圍和手段有關,有時很難滿足傳統統計方法所要求的統計條件和規律,加之岩土工程信息的復雜性和不確定性,因而運用神經網路方法實現岩土工程問題的求解是合適的。
BP神經網路模型是誤差反向傳播(BackPagation)網路模型的簡稱。它由輸入層、隱含層和輸出層組成。網路的學習過程就是對網路各層節點間連接權逐步修改的過程,這一過程由兩部分組成:正向傳播和反向傳播。正向傳播是輸入模式從輸入層經隱含層處理傳向輸出層;反向傳播是均方誤差信息從輸出層向輸入層傳播,將誤差信號沿原來的連接通路返回,通過修改各層神經元的權值,使得誤差信號最小。
BP神經網路模型在建立及應用過程中,主要存在的不足和建議有以下四個方面:
(1)對於神經網路,數據愈多,網路的訓練效果愈佳,也更能反映實際。但在實際操作中,由於條件的限制很難選取大量的樣本值進行訓練,樣本數量偏少。
(2)BP網路模型其計算速度較慢、無法表達預測量與其相關參數之間親疏關系。
(3)以定量數據為基礎建立模型,若能收集到充分資料,以定性指標(如基坑降水方式、基坑支護模式、施工工況等)和一些易獲取的定量指標作為輸入層,以評價等級作為輸出層,這樣建立的BP網路模型將更准確全面。
(4)BP人工神經網路系統具有非線性、智能的特點。較好地考慮了定性描述和定量計算、精確邏輯分析和非確定性推理等方面,但由於樣本不同,影響要素的權重不同,以及在根據先驗知識和前人的經驗總結對定性參數進行量化處理,必然會影響評價的客觀性和准確性。因此,在實際評價中只有根據不同的基坑施工工況、不同的周邊環境條件,應不同用戶的需求,選擇不同的分析指標,才能滿足復雜工況條件下地質環境評價的要求,取得較好的應用效果。
『伍』 神經網路BP模型
一、BP模型概述
誤差逆傳播(Error Back-Propagation)神經網路模型簡稱為BP(Back-Propagation)網路模型。
Pall Werbas博士於1974年在他的博士論文中提出了誤差逆傳播學習演算法。完整提出並被廣泛接受誤差逆傳播學習演算法的是以Rumelhart和McCelland為首的科學家小組。他們在1986年出版「Parallel Distributed Processing,Explorations in the Microstructure of Cognition」(《並行分布信息處理》)一書中,對誤差逆傳播學習演算法進行了詳盡的分析與介紹,並對這一演算法的潛在能力進行了深入探討。
BP網路是一種具有3層或3層以上的階層型神經網路。上、下層之間各神經元實現全連接,即下層的每一個神經元與上層的每一個神經元都實現權連接,而每一層各神經元之間無連接。網路按有教師示教的方式進行學習,當一對學習模式提供給網路後,神經元的激活值從輸入層經各隱含層向輸出層傳播,在輸出層的各神經元獲得網路的輸入響應。在這之後,按減小期望輸出與實際輸出的誤差的方向,從輸入層經各隱含層逐層修正各連接權,最後回到輸入層,故得名「誤差逆傳播學習演算法」。隨著這種誤差逆傳播修正的不斷進行,網路對輸入模式響應的正確率也不斷提高。
BP網路主要應用於以下幾個方面:
1)函數逼近:用輸入模式與相應的期望輸出模式學習一個網路逼近一個函數;
2)模式識別:用一個特定的期望輸出模式將它與輸入模式聯系起來;
3)分類:把輸入模式以所定義的合適方式進行分類;
4)數據壓縮:減少輸出矢量的維數以便於傳輸或存儲。
在人工神經網路的實際應用中,80%~90%的人工神經網路模型採用BP網路或它的變化形式,它也是前向網路的核心部分,體現了人工神經網路最精華的部分。
二、BP模型原理
下面以三層BP網路為例,說明學習和應用的原理。
1.數據定義
P對學習模式(xp,dp),p=1,2,…,P;
輸入模式矩陣X[N][P]=(x1,x2,…,xP);
目標模式矩陣d[M][P]=(d1,d2,…,dP)。
三層BP網路結構
輸入層神經元節點數S0=N,i=1,2,…,S0;
隱含層神經元節點數S1,j=1,2,…,S1;
神經元激活函數f1[S1];
權值矩陣W1[S1][S0];
偏差向量b1[S1]。
輸出層神經元節點數S2=M,k=1,2,…,S2;
神經元激活函數f2[S2];
權值矩陣W2[S2][S1];
偏差向量b2[S2]。
學習參數
目標誤差ϵ;
初始權更新值Δ0;
最大權更新值Δmax;
權更新值增大倍數η+;
權更新值減小倍數η-。
2.誤差函數定義
對第p個輸入模式的誤差的計算公式為
中國礦產資源評價新技術與評價新模型
y2kp為BP網的計算輸出。
3.BP網路學習公式推導
BP網路學習公式推導的指導思想是,對網路的權值W、偏差b修正,使誤差函數沿負梯度方向下降,直到網路輸出誤差精度達到目標精度要求,學習結束。
各層輸出計算公式
輸入層
y0i=xi,i=1,2,…,S0;
隱含層
中國礦產資源評價新技術與評價新模型
y1j=f1(z1j),
j=1,2,…,S1;
輸出層
中國礦產資源評價新技術與評價新模型
y2k=f2(z2k),
k=1,2,…,S2。
輸出節點的誤差公式
中國礦產資源評價新技術與評價新模型
對輸出層節點的梯度公式推導
中國礦產資源評價新技術與評價新模型
E是多個y2m的函數,但只有一個y2k與wkj有關,各y2m間相互獨立。
其中
中國礦產資源評價新技術與評價新模型
則
中國礦產資源評價新技術與評價新模型
設輸出層節點誤差為
δ2k=(dk-y2k)·f2′(z2k),
則
中國礦產資源評價新技術與評價新模型
同理可得
中國礦產資源評價新技術與評價新模型
對隱含層節點的梯度公式推導
中國礦產資源評價新技術與評價新模型
E是多個y2k的函數,針對某一個w1ji,對應一個y1j,它與所有的y2k有關。因此,上式只存在對k的求和,其中
中國礦產資源評價新技術與評價新模型
則
中國礦產資源評價新技術與評價新模型
設隱含層節點誤差為
中國礦產資源評價新技術與評價新模型
則
中國礦產資源評價新技術與評價新模型
同理可得
中國礦產資源評價新技術與評價新模型
4.採用彈性BP演算法(RPROP)計算權值W、偏差b的修正值ΔW,Δb
1993年德國 Martin Riedmiller和Heinrich Braun 在他們的論文「A Direct Adaptive Method for Faster Backpropagation Learning:The RPROP Algorithm」中,提出Resilient Backpropagation演算法——彈性BP演算法(RPROP)。這種方法試圖消除梯度的大小對權步的有害影響,因此,只有梯度的符號被認為表示權更新的方向。
權改變的大小僅僅由權專門的「更新值」
中國礦產資源評價新技術與評價新模型
其中
權更新遵循規則:如果導數是正(增加誤差),這個權由它的更新值減少。如果導數是負,更新值增加。
中國礦產資源評價新技術與評價新模型
RPROP演算法是根據局部梯度信息實現權步的直接修改。對於每個權,我們引入它的
各自的更新值
於在誤差函數E上的局部梯度信息,按照以下的學習規則更新
中國礦產資源評價新技術與評價新模型
其中0<η-<1<η+。
在每個時刻,如果目標函數的梯度改變它的符號,它表示最後的更新太大,更新值
為了減少自由地可調參數的數目,增大倍數因子η+和減小倍數因子η–被設置到固定值
η+=1.2,
η-=0.5,
這兩個值在大量的實踐中得到了很好的效果。
RPROP演算法採用了兩個參數:初始權更新值Δ0和最大權更新值Δmax
當學習開始時,所有的更新值被設置為初始值Δ0,因為它直接確定了前面權步的大小,它應該按照權自身的初值進行選擇,例如,Δ0=0.1(默認設置)。
為了使權不至於變得太大,設置最大權更新值限制Δmax,默認上界設置為
Δmax=50.0。
在很多實驗中,發現通過設置最大權更新值Δmax到相當小的值,例如
Δmax=1.0。
我們可能達到誤差減小的平滑性能。
5.計算修正權值W、偏差b
第t次學習,權值W、偏差b的的修正公式
W(t)=W(t-1)+ΔW(t),
b(t)=b(t-1)+Δb(t),
其中,t為學習次數。
6.BP網路學習成功結束條件每次學習累積誤差平方和
中國礦產資源評價新技術與評價新模型
每次學習平均誤差
中國礦產資源評價新技術與評價新模型
當平均誤差MSE<ε,BP網路學習成功結束。
7.BP網路應用預測
在應用BP網路時,提供網路輸入給輸入層,應用給定的BP網路及BP網路學習得到的權值W、偏差b,網路輸入經過從輸入層經各隱含層向輸出層的「順傳播」過程,計算出BP網的預測輸出。
8.神經元激活函數f
線性函數
f(x)=x,
f′(x)=1,
f(x)的輸入范圍(-∞,+∞),輸出范圍(-∞,+∞)。
一般用於輸出層,可使網路輸出任何值。
S型函數S(x)
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍(0,1)。
f′(x)=f(x)[1-f(x)],
f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,
一般用於隱含層,可使范圍(-∞,+∞)的輸入,變成(0,1)的網路輸出,對較大的輸入,放大系數較小;而對較小的輸入,放大系數較大,所以可用來處理和逼近非線性的輸入/輸出關系。
在用於模式識別時,可用於輸出層,產生逼近於0或1的二值輸出。
雙曲正切S型函數
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍(-1,1)。
f′(x)=1-f(x)·f(x),
f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,1]。
一般用於隱含層,可使范圍(-∞,+∞)的輸入,變成(-1,1)的網路輸出,對較大的輸入,放大系數較小;而對較小的輸入,放大系數較大,所以可用來處理和逼近非線性的輸入/輸出關系。
階梯函數
類型1
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
f′(x)=0。
類型2
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍{-1,1}。
f′(x)=0。
斜坡函數
類型1
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍[0,1]。
中國礦產資源評價新技術與評價新模型
f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
類型2
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍[-1,1]。
中國礦產資源評價新技術與評價新模型
f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
三、總體演算法
1.三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b初始化總體演算法
(1)輸入參數X[N][P],S0,S1,f1[S1],S2,f2[S2];
(2)計算輸入模式X[N][P]各個變數的最大值,最小值矩陣 Xmax[N],Xmin[N];
(3)隱含層的權值W1,偏差b1初始化。
情形1:隱含層激活函數f( )都是雙曲正切S型函數
1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];
2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];
3)計算W,b的幅度因子Wmag;
4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];
5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];
6)計算W[S1][S0],b[S1];
7)計算隱含層的初始化權值W1[S1][S0];
8)計算隱含層的初始化偏差b1[S1];
9))輸出W1[S1][S0],b1[S1]。
情形2:隱含層激活函數f( )都是S型函數
1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];
2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];
3)計算W,b的幅度因子Wmag;
4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];
5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];
6)計算W[S1][S0],b[S1];
7)計算隱含層的初始化權值W1[S1][S0];
8)計算隱含層的初始化偏差b1[S1];
9)輸出W1[S1][S0],b1[S1]。
情形3:隱含層激活函數f( )為其他函數的情形
1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];
2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];
3)計算W,b的幅度因子Wmag;
4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];
5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];
6)計算W[S1][S0],b[S1];
7)計算隱含層的初始化權值W1[S1][S0];
8)計算隱含層的初始化偏差b1[S1];
9)輸出W1[S1][S0],b1[S1]。
(4)輸出層的權值W2,偏差b2初始化
1)產生[-1,1]之間均勻分布的S2×S1維隨機數矩陣W2[S2][S1];
2)產生[-1,1]之間均勻分布的S2×1維隨機數矩陣b2[S2];
3)輸出W2[S2][S1],b2[S2]。
2.應用彈性BP演算法(RPROP)學習三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b總體演算法
函數:Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)
(1)輸入參數
P對模式(xp,dp),p=1,2,…,P;
三層BP網路結構;
學習參數。
(2)學習初始化
1)
2)各層W,b的梯度值
(3)由輸入模式X求第一次學習各層輸出y0,y1,y2及第一次學習平均誤差MSE
(4)進入學習循環
epoch=1
(5)判斷每次學習誤差是否達到目標誤差要求
如果MSE<ϵ,
則,跳出epoch循環,
轉到(12)。
(6)保存第epoch-1次學習產生的各層W,b的梯度值
(7)求第epoch次學習各層W,b的梯度值
1)求各層誤差反向傳播值δ;
2)求第p次各層W,b的梯度值
3)求p=1,2,…,P次模式產生的W,b的梯度值
(8)如果epoch=1,則將第epoch-1次學習的各層W,b的梯度值
(9)求各層W,b的更新
1)求權更新值Δij更新;
2)求W,b的權更新值
3)求第epoch次學習修正後的各層W,b。
(10)用修正後各層W、b,由X求第epoch次學習各層輸出y0,y1,y2及第epoch次學習誤差MSE
(11)epoch=epoch+1,
如果epoch≤MAX_EPOCH,轉到(5);
否則,轉到(12)。
(12)輸出處理
1)如果MSE<ε,
則學習達到目標誤差要求,輸出W1,b1,W2,b2。
2)如果MSE≥ε,
則學習沒有達到目標誤差要求,再次學習。
(13)結束
3.三層BP網路(含輸入層,隱含層,輸出層)預測總體演算法
首先應用Train3lBP_RPROP( )學習三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b,然後應用三層BP網路(含輸入層,隱含層,輸出層)預測。
函數:Simu3lBP( )。
1)輸入參數:
P個需預測的輸入數據向量xp,p=1,2,…,P;
三層BP網路結構;
學習得到的各層權值W、偏差b。
2)計算P個需預測的輸入數據向量xp(p=1,2,…,P)的網路輸出 y2[S2][P],輸出預測結果y2[S2][P]。
四、總體演算法流程圖
BP網路總體演算法流程圖見附圖2。
五、數據流圖
BP網數據流圖見附圖1。
六、實例
實例一 全國銅礦化探異常數據BP 模型分類
1.全國銅礦化探異常數據准備
在全國銅礦化探數據上用穩健統計學方法選取銅異常下限值33.1,生成全國銅礦化探異常數據。
2.模型數據准備
根據全國銅礦化探異常數據,選取7類33個礦點的化探數據作為模型數據。這7類分別是岩漿岩型銅礦、斑岩型銅礦、矽卡岩型、海相火山型銅礦、陸相火山型銅礦、受變質型銅礦、海相沉積型銅礦,另添加了一類沒有銅異常的模型(表8-1)。
3.測試數據准備
全國化探數據作為測試數據集。
4.BP網路結構
隱層數2,輸入層到輸出層向量維數分別為14,9、5、1。學習率設置為0.9,系統誤差1e-5。沒有動量項。
表8-1 模型數據表
續表
5.計算結果圖
如圖8-2、圖8-3。
圖8-2
圖8-3 全國銅礦礦床類型BP模型分類示意圖
實例二 全國金礦礦石量品位數據BP 模型分類
1.模型數據准備
根據全國金礦儲量品位數據,選取4類34個礦床數據作為模型數據,這4類分別是綠岩型金礦、與中酸性浸入岩有關的熱液型金礦、微細浸染型型金礦、火山熱液型金礦(表8-2)。
2.測試數據准備
模型樣本點和部分金礦點金屬量、礦石量、品位數據作為測試數據集。
3.BP網路結構
輸入層為三維,隱層1層,隱層為三維,輸出層為四維,學習率設置為0.8,系統誤差1e-4,迭代次數5000。
表8-2 模型數據
4.計算結果
結果見表8-3、8-4。
表8-3 訓練學習結果
表8-4 預測結果(部分)
續表
『陸』 bp演算法在人工神經網路中的作用是什麼
BP(Back Propagation)演算法是一種常用的人工神經網路訓練演算法,是通過反向傳播來調整神經網路權值的演算法。在人工神經網路中,BP演算法的作用是幫助神經網路對輸入的數據進行學習,並通過學習來調整神經網路的權值,以使得神經網路能夠較好地對未知數據進行預測。
『柒』 bp神經網路
BP(Back Propagation)網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。
人工神經網路就是模擬人思維的第二種方式。這是一個非線性動力學系統,其特色在於信息的分布式存儲和並行協同處理。雖然單個神經元的結構極其簡單,功能有限,但大量神經元構成的網路系統所能實現的行為卻是極其豐富多彩的。
人工神經網路首先要以一定的學習准則進行學習,然後才能工作。現以人工神經網路對手寫「A」、「B」兩個字母的識別為例進行說明,規定當「A」輸入網路時,應該輸出「1」,而當輸入為「B」時,輸出為「0」。
所以網路學習的准則應該是:如果網路作出錯誤的的判決,則通過網路的學習,應使得網路減少下次犯同樣錯誤的可能性。首先,給網路的各連接權值賦予(0,1)區間內的隨機值,將「A」所對應的圖象模式輸入給網路,網路將輸入模式加權求和、與門限比較、再進行非線性運算,得到網路的輸出。在此情況下,網路輸出為「1」和「0」的概率各為50%,也就是說是完全隨機的。這時如果輸出為「1」(結果正確),則使連接權值增大,以便使網路再次遇到「A」模式輸入時,仍然能作出正確的判斷。
如果輸出為「0」(即結果錯誤),則把網路連接權值朝著減小綜合輸入加權值的方向調整,其目的在於使網路下次再遇到「A」模式輸入時,減小犯同樣錯誤的可能性。如此操作調整,當給網路輪番輸入若干個手寫字母「A」、「B」後,經過網路按以上學習方法進行若干次學習後,網路判斷的正確率將大大提高。這說明網路對這兩個模式的學習已經獲得了成功,它已將這兩個模式分布地記憶在網路的各個連接權值上。當網路再次遇到其中任何一個模式時,能夠作出迅速、准確的判斷和識別。一般說來,網路中所含的神經元個數越多,則它能記憶、識別的模式也就越多。
如圖所示拓撲結構的單隱層前饋網路,一般稱為三層前饋網或三層感知器,即:輸入層、中間層(也稱隱層)和輸出層。它的特點是:各層神經元僅與相鄰層神經元之間相互全連接,同層內神經元之間無連接,各層神經元之間無反饋連接,構成具有層次結構的前饋型神經網路系統。單計算層前饋神經網路只能求解線性可分問題,能夠求解非線性問題的網路必須是具有隱層的多層神經網路。
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。主要的研究工作集中在以下幾個方面:
(1)生物原型研究。從生理學、心理學、解剖學、腦科學、病理學等生物科學方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。
(2)建立理論模型。根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。
(3)網路模型與演算法研究。在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機模擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。
(4)人工神經網路應用系統。在網路模型與演算法研究的基礎上,利用人工神經網路組成實際的應用系統,例如,完成某種信號處理或模式識別的功能、構作專家系統、製成機器人等等。
縱觀當代新興科學技術的發展歷史,人類在征服宇宙空間、基本粒子,生命起源等科學技術領域的進程中歷經了崎嶇不平的道路。我們也會看到,探索人腦功能和神經網路的研究將伴隨著重重困難的克服而日新月異。
神經網路可以用作分類、聚類、預測等。神經網路需要有一定量的歷史數據,通過歷史數據的訓練,網路可以學習到數據中隱含的知識。在你的問題中,首先要找到某些問題的一些特徵,以及對應的評價數據,用這些數據來訓練神經網路。
雖然BP網路得到了廣泛的應用,但自身也存在一些缺陷和不足,主要包括以下幾個方面的問題。
首先,由於學習速率是固定的,因此網路的收斂速度慢,需要較長的訓練時間。對於一些復雜問題,BP演算法需要的訓練時間可能非常長,這主要是由於學習速率太小造成的,可採用變化的學習速率或自適應的學習速率加以改進。
其次,BP演算法可以使權值收斂到某個值,但並不保證其為誤差平面的全局最小值,這是因為採用梯度下降法可能產生一個局部最小值。對於這個問題,可以採用附加動量法來解決。
再次,網路隱含層的層數和單元數的選擇尚無理論上的指導,一般是根據經驗或者通過反復實驗確定。因此,網路往往存在很大的冗餘性,在一定程度上也增加了網路學習的負擔。
最後,網路的學習和記憶具有不穩定性。也就是說,如果增加了學習樣本,訓練好的網路就需要從頭開始訓練,對於以前的權值和閾值是沒有記憶的。但是可以將預測、分類或聚類做的比較好的權值保存。