當前位置:首頁 » 安全設置 » bp神經網路需要自己設置
擴展閱讀
電腦一扯就黑屏怎麼辦 2025-07-05 12:42:54

bp神經網路需要自己設置

發布時間: 2022-10-08 13:05:34

① 傷寒、副傷寒流行預測模型(BP神經網路)的建立

由於目前研究的各種數學模型或多或少存在使用條件的局限性,或使用方法的復雜性等問題,預測效果均不十分理想,距離實際應用仍有較大差距。NNT是Matlab 中較為重要的一個工具箱,在實際應用中,BP 網路用的最廣泛。神經網路具有綜合能力強,對數據的要求不高,適時學習等突出優點,其操作簡便,節省時間,網路初學者即使不了解其演算法的本質,也可以直接應用功能豐富的函數來實現自己的目的。因此,易於被基層單位預防工作者掌握和應用。以下幾個問題是建立理想的因素與疾病之間的神經網路模型的關鍵:

(1)資料選取

應盡可能地選取所研究地區系統連續的因素與疾病資料,最好包括有疾病高發年和疾病低發年的數據。在收集影響因素時,要抓住主要影響傷寒、副傷寒的發病因素。

(2)疾病發病率分級

神經網路預測法是按發病率高低來進行預測,在定義發病率等級時,要結合專業知識及當地情況而定,並根據網路學習訓練效果而適時調整,以使網路學習訓練達到最佳效果。

(3)資料處理問題

在實踐中發現,資料的特徵往往很大程度地影響網路學習和訓練的穩定性,因此,數據的應用、納入、排出問題有待於進一步研究。

6.3.1 人工神經網路的基本原理

人工神經網路(ANN)是近年來發展起來的十分熱門的交叉學科,它涉及生物、電子、計算機、數學和物理等學科,有著廣泛的應用領域。人工神經網路是一種自適應的高度非線性動力系統,在網路計算的基礎上,經過多次重復組合,能夠完成多維空間的映射任務。神經網路通過內部連接的自組織結構,具有對數據的高度自適應能力,由計算機直接從實例中學習獲取知識,探求解決問題的方法,自動建立起復雜系統的控制規律及其認知模型。

人工神經網路就其結構而言,一般包括輸入層、隱含層和輸出層,不同的神經網路可以有不同的隱含層數,但他們都只有一層輸入和一層輸出。神經網路的各層又由不同數目的神經元組成,各層神經元數目隨解決問題的不同而有不同的神經元個數。

6.3.2 BP神經網路模型

BP網路是在1985年由PDP小組提出的反向傳播演算法的基礎上發展起來的,是一種多層次反饋型網路(圖6.17),它在輸入和輸出之間採用多層映射方式,網路按層排列,只有相鄰層的節點直接相互連接,傳遞之間信息。在正向傳播中,輸入信息從輸入層經隱含層逐層處理,並傳向輸出層,每層神經元的狀態隻影響下一層神經元的狀態。如果輸出層不能得到期望的輸出結果,則轉入反向傳播,將誤差信號沿原來的連同通路返回,通過修改各層神經元的權值,使誤差信號最小。

BP網路的學習演算法步驟如下(圖6.18):

圖6.17 BP神經網路示意圖

圖6.18 BP演算法流程圖

第一步:設置初始參數ω和θ,(ω為初始權重,θ為臨界值,均隨機設為較小的數)。

第二步:將已知的樣本加到網路上,利用下式可算出他們的輸出值yi,其值為

岩溶地區地下水與環境的特殊性研究

式中:xi為該節點的輸入;ωij為從I到j的聯接權;θj為臨界值;yj為實際算出的輸出數據。

第三步:將已知輸出數據與上面算出的輸出數據之差(dj-yj)調整權系數ω,調整量為

ΔWij=ηδjxj

式中:η為比例系數;xj為在隱節點為網路輸入,在輸出點則為下層(隱)節點的輸出(j=1,2…,n);dj為已知的輸出數據(學習樣本訓練數據);δj為一個與輸出偏差相關的值,對於輸出節點來說有

δjj(1-yj)(dj-yj

對於隱節點來說,由於它的輸出無法進行比較,所以經過反向逐層計算有

岩溶地區地下水與環境的特殊性研究

其中k指要把上層(輸出層)節點取遍。誤差δj是從輸出層反向逐層計算的。各神經元的權值調整後為

ωij(t)=ωij(t-1)+Vωij

式中:t為學習次數。

這個演算法是一個迭代過程,每一輪將各W值調整一遍,這樣一直迭代下去,知道輸出誤差小於某一允許值為止,這樣一個好的網路就訓練成功了,BP演算法從本質上講是把一組樣本的輸入輸出問題變為一個非線性優化問題,它使用了優化技術中最普遍的一種梯度下降演算法,用迭代運算求解權值相當於學習記憶問題。

6.3.3 BP 神經網路模型在傷寒、副傷寒流行與傳播預測中的應用

傷寒、副傷寒的傳播與流行同環境之間有著一定的聯系。根據桂林市1990年以來鄉鎮為單位的傷寒、副傷寒疫情資料,傷寒、副傷寒疫源地資料,結合現有資源與環境背景資料(桂林市行政區劃、土壤、氣候等)和社會經濟資料(經濟、人口、生活習慣等統計資料)建立人工神經網路數學模型,來逼近這種規律。

6.3.3.1 模型建立

(1)神經網路的BP演算法

BP網路是一種前饋型網路,由1個輸入層、若干隱含層和1個輸出層構成。如果輸入層、隱含層和輸出層的單元個數分別為n,q1,q2,m,則該三層網路網路可表示為BP(n,q1,q2,m),利用該網路可實現n維輸入向量Xn=(X1,X2,…,Xn)T到m維輸出向量Ym=(Y1,Y2,…,Ym)T的非線性映射。輸入層和輸出層的單元數n,m根據具體問題確定。

(2)樣本的選取

將模型的輸入變數設計為平均溫度、平均降雨量、岩石性質、岩溶發育、地下水類型、飲用水類型、正規自來水供應比例、集中供水比例8個輸入因子(表6.29),輸出單元為傷寒副傷寒的發病率等級,共一個輸出單元。其中q1,q2的值根據訓練結果進行選擇。

表6.29 桂林市傷寒副傷寒影響因素量化表

通過分析,選取在傷寒副傷寒有代表性的縣鎮在1994~2001年的環境參評因子作為樣本進行訓練。利用聚類分析法對疫情進行聚類分級(Ⅰ、Ⅱ、Ⅲ、Ⅳ),傷寒副傷寒發病最高級為Ⅳ(BP網路中輸出定為4),次之的為Ⅲ(BP網路中輸出定為3),以此類推,最低為Ⅰ(BP網路中輸出定為1)

(3)數據的歸一化處理

為使網路在訓練過程中易於收斂,我們對輸入數據進行了歸一化處理,並將輸入的原始數據都化為0~1之間的數。如將平均降雨量的數據乘以0.0001;將平均氣溫的數據乘以0.01;其他輸入數據也按類似的方法進行歸一化處理。

(4)模型的演算法過程

假設共有P個訓練樣本,輸入的第p個(p=1,2,…,P)訓練樣本信息首先向前傳播到隱含單元上。

經過激活函數f(u)的作用得到隱含層1的輸出信息:

岩溶地區地下水與環境的特殊性研究

經過激活函數f(u)的作用得到隱含層2的輸出信息:

岩溶地區地下水與環境的特殊性研究

激活函數f(u)我們這里採用Sigmoid型,即

f(u)=1/[1+exp(-u)](6.5)

隱含層的輸出信息傳到輸出層,可得到最終輸出結果為

岩溶地區地下水與環境的特殊性研究

以上過程為網路學習的信息正向傳播過程。

另一個過程為誤差反向傳播過程。如果網路輸出與期望輸出間存在誤差,則將誤差反向傳播,利用下式來調節網路權重和閾值:

岩溶地區地下水與環境的特殊性研究

式中:Δω(t)為t次訓練時權重和閾值的修正;η稱為學習速率,0<η<1;E為誤差平方和。

岩溶地區地下水與環境的特殊性研究

反復運用以上兩個過程,直至網路輸出與期望輸出間的誤差滿足一定的要求。

該模型演算法的缺點:

1)需要較長的訓練時間。由於一些復雜的問題,BP演算法可能要進行幾小時甚至更長的時間的訓練,這主要是由於學習速率太小造成的,可採用變化的學習速率或自適應的學習速率加以改進。

2)完全不能訓練。主要表現在網路出現的麻痹現象上,在網路的訓練過程中,當其權值調的過大,可能使得所有的或大部分神經元的加權總和n偏大,這使得激活函數的輸入工作在S型轉移函數的飽和區,從而導致其導數f′(n)非常小,從而使得對網路權值的調節過程幾乎停頓下來。

3)局部極小值。BP演算法可以使網路權值收斂到一個解,但它並不能保證所求為誤差超平面的全局最小解,很可能是一個局部極小解。這是因為BP演算法採用的是梯度下降法,訓練從某一起點沿誤差函數的斜面逐漸達到誤差的最小值。

考慮到以上演算法的缺點,對模型進行了兩方面的改進:

(1)附加動量法

為了避免陷入局部極小值,對模型進行了改進,應用了附加動量法。附加動量法在使網路修正及其權值時,不僅考慮誤差在梯度上的作用,而且考慮在誤差曲面上變化趨勢的影響,其作用如同一個低通濾波器,它允許網路忽略網路上的微小變化特性。在沒有附加動量的作用下,網路可能陷入淺的局部極小值,利用附加動量的作用則有可能滑過這些極小值。

該方法是在反向傳播法的基礎上在每一個權值的變化上加上一項正比於前次權值變化量的值,並根據反向傳播法來產生心的權值變化。促使權值的調節向著誤差曲面底部的平均方向變化,從而防止了如Δω(t)=0的出現,有助於使網路從誤差曲面的局部極小值中跳出。

這種方法主要是把式(6.7)改進為

岩溶地區地下水與環境的特殊性研究

式中:A為訓練次數;a為動量因子,一般取0.95左右。

訓練中對採用動量法的判斷條件為

岩溶地區地下水與環境的特殊性研究

(2)自適應學習速率

對於一個特定的問題,要選擇適當的學習速率不是一件容易的事情。通常是憑經驗或實驗獲取,但即使這樣,對訓練開始初期功效較好的學習速率,不見得對後來的訓練合適。所以,為了盡量縮短網路所需的訓練時間,採用了學習速率隨著訓練變化的方法來找到相對於每一時刻來說較差的學習速率。

下式給出了一種自適應學習速率的調整公式:

岩溶地區地下水與環境的特殊性研究

通過以上兩個方面的改進,訓練了一個比較理想的網路,將動量法和自適應學習速率結合起來,效果要比單獨使用要好得多。

6.3.3.2 模型的求解與預測

採用包含了2個隱含層的神經網路BP(4,q1,q2,1),隱含層單元數q1,q2與所研究的具體問題有關,目前尚無統一的確定方法,通常根據網路訓練情況採用試錯法確定。在滿足一定的精度要求下一般認小的數值,以改善網路的概括推論能力。在訓練中網路的收斂採用輸出值Ykp與實測值tp的誤差平方和進行控制:

岩溶地區地下水與環境的特殊性研究

1)將附加動量法和自適應學習速率結合應用,分析桂林市36個鄉鎮地質條件各因素對傷寒副傷寒發病等級的影響。因此訓練樣本為36個,第一個隱含層有19個神經元,第二個隱含層有11個神經元,學習速率為0.001。

A.程序(略)。

B.網路訓練。在命令窗口執行運行命令,網路開始學習和訓練,其學習和訓練過程如下(圖6.19)。

圖6.19 神經網路訓練過程圖

C.模型預測。

a.輸入未參與訓練的鄉鎮(洞井鄉、兩水鄉、延東鄉、四塘鄉、嚴關鎮、靈田鄉)地質條件數據。

b.預測。程序運行後網路輸出預測值a3,與已知的實際值進行比較,其預測結果整理後見(表6.30)。經計算,對6個鄉鎮傷寒副傷寒發病等級的預測符合率為83.3%。

表6.30 神經網路模型預測結果與實際結果比較

c.地質條件改進方案。在影響疾病發生的地質條件中,大部分地質條件是不會變化的,而改變發病地區的飲用水類型是可以人為地通過改良措施加以實施的一個因素。因此,以靈田鄉為例對發病率較高的鄉鎮進行分析,改變其飲用水類型,來看發病等級的變化情況。

表6.31顯示,在其他地質條件因素不變的情況下,改變當地的地下水類型(從原來的岩溶水類型改變成基岩裂隙水)則將發病等級從原來的最高級4級,下降為較低的2級,效果是十分明顯的。因此,今後在進行傷寒副傷寒疾病防治的時候,可以通過改變高發區飲用水類型來客觀上減少疫情的發生。

表6.31 靈田鄉改變飲用水類型前後的預測結果

2)選取桂林地區1994~2000年月平均降雨量、月平均溫度作為輸入數據矩陣,進行樣本訓練,設定不同的隱含層單元數,對各月份的數據進行BP網路訓練。在隱含層單元數q1=13,q2=9,經過46383次數的訓練,誤差達到精度要求,學習速率0.02。

A.附加動量法程序(略)。

B.網路訓練。在命令窗口執行運行命令,網路開始學習和訓練,其學習和訓練過程如下(圖6.20)。

C.模型預測。

a.輸入桂林市2001年1~12月桂林市各月份的平均氣溫和平均降雨量。預測程度(略)。

b.預測。程序運行後網路輸出預測值a2,與已知的實際值進行比較,其預測結果整理後見(表6.32)。經計算,對2001年1~12月傷寒副傷寒發病等級進行預測,12個預測結果中,有9個符合,符合率為75%。

圖6.20 神經網路訓練過程圖

表6.32 神經網路模型預測結果與實際值比較

6.3.3.3 模型的評價

本研究採用BP神經網路對傷寒、副傷寒發病率等級進行定量預測,一方面引用數量化理論對不確定因素進行量化處理;另一方面利用神經網路優點,充分考慮各影響因素與發病率之間的非線性映射。

實際應用表明,神經網路定量預測傷寒、副傷寒發病率是理想的。

其主要優點有:

1)避免了模糊或不確定因素的分析工作和具體數學模型的建立工作。

2)完成了輸入和輸出之間復雜的非線性映射關系。

3)採用自適應的信息處理方式,有效減少人為的主觀臆斷性。

雖然如此,但仍存在以下缺點:

1)學習演算法的收斂速度慢,通常需要上千次或更多,訓練時間長。

2)從數學上看,BP演算法有可能存在局部極小問題。

本模型具有廣泛的應用范圍,可以應用在很多領域。從上面的結果可以看出,實際和網路學習數據總體較為接近,演化趨勢也基本一致。說明選定的氣象因子、地質條件因素為神經單元獲得的傷寒、副傷寒發病等級與實際等級比較接近,從而證明傷寒、副傷寒流行與地理因素的確存在較密切的相關性。

② BP神經網路怎麼設置輸入層節點數

matlab的? 輸入層由你輸入的特徵決定的,送入特徵matlab就自動確定輸入層節點數了

③ BP神經網路中初始權值和閾值的設定

1、首先需要了解BP神經網路是一種多層前饋網路。

④ BP神經網路 運行的步驟太少就停了,是參數設置的問題嗎

不是運行太少而停止,是達到了你的要求。
net.trainParam.goal=0.01;
精度調高點試下

⑤ 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神經網路訓練一直達不到要求,要怎樣修改才能達到要求

net=init(net);不用這一句,把『logsig『改成「tansig」,第一個,同樣,把第二個改成』purelin『
建議你把』trainrp『改成』trainlm「,試試!

⑦ BP神經網路如何設置初始權值

1、如果使用MATLAB的話不要自己設定,newff之後會自動賦值
也可以手動:net.IW{}= ; net.bias{}=
2、一般來說輸入歸一化,那麼w和b取0-1的隨機數就行

⑧ 菜鳥請BP神經網路達人幫忙。。萬分感謝!

步驟基本上是這樣的,但你需要自己根據數據來設置相應的參數
close all ;
clear ;
echo on ;
clc ;
% NEWFF——生成一個新的前向神經網路
% TRAIN——對 BP 神經網路進行訓練
% SIM——對 BP 神經網路進行模擬
pause
% 敲任意鍵開始
clc
% 定義訓練樣本
% P 為輸入矢量
p=[ ];
% T 為目標矢量
t= [];
%訓練樣本的歸一化
for i=1:(訓練樣本的指標數)
P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
pause
clc

% 創建一個新的前向神經網路
net=newff(minmax(P),[15,2],{'tansig','purelin'},'traingda'); %這些參數要自己設置
% 當前輸入層權值和閾值
inputWeights=net.IW{1,1};
inputbias=net.b{1} ;
% 當前網路層權值和閾值
layerWeights=net.LW{2,1} ;
layerbias=net.b{2} ;
pause
clc

% 設置訓練參數 也要自己設置
net.trainParam.show = 50;
net.trainParam.lr = 0.05;
%net.trainParam.mc = 0.9; % 附加動量因子
net.trainParam.epochs =5000;
net.trainParam.goal = 1e-4;
pause
clc

% 調用 TRAINGDM 演算法訓練 BP 網路
[net,tr]=train(net,P,t);
pause
clc
% 對 BP 網路進行模擬
p_test=[];
for i=1:6
P_test(i,:)=(p_test(i,:)-min(p_test(i,:)))/(max(p_test(i,:))-min(p_test(i,:)));
end
t_test=[];
A = sim(net,P_test)
% 計算模擬誤差
E = t - A
error=mse(E)
pause
clc
echo off

%反歸一化
for i=1:2
predict(i,:)=A(i,:)*(max(t(i,:))-min(t(i,:)))+ min(t(i,:));
end
predict %即模擬結果
pause

⑨ 在用bp神經網路時,需要輸入數據,但有些數據是定性數據,如何將定性數據定量化

你所說的應該是輸入數據的預處理 即pre-processing,你使用ST Nueral Networks的話,裡面有自動的預處理,你輸入定性數據(nominal variable)後,軟體可以自動預處理後轉化為神經網路可以識別的數值.
或者你自己設置
例1 根據年鑒記載的某些地區經度,緯度與台風類型的關系預測任意經緯度下台風類型(台風A或者台風B),

台風類型就屬於定性數據在STNN中你可以現將輸出變數設置為nominal variable,然後設置輸出變數的數目為2,分別是V1和V2,構建網路的時候經緯度對應台風A的,設置輸出值為V1,為台風B的設置為V2,預測時,網路可以給出結果V1或者V2,你就知道是哪種台風了.
例2 根據現有的水質標准以及數種污染物的采樣值預測該河流的水質級別

輸出值為水質級別,同樣為nominal variable,你可以將輸出值作一個標准化處理,設總共有五個水質級別,你可以將輸出變數區間化分為0-0.2,0.2-0.4,0.4-0.6,0.6-0.8,0.8-1,設置第一級別水質對應的輸出值為0.2 第2級水質對應0.4,等等,第5級水質對應1

⑩ BP人工神經網路方法

(一)方法原理

人工神經網路是由大量的類似人腦神經元的簡單處理單元廣泛地相互連接而成的復雜的網路系統。理論和實踐表明,在信息處理方面,神經網路方法比傳統模式識別方法更具有優勢。人工神經元是神經網路的基本處理單元,其接收的信息為x1,x2,…,xn,而ωij表示第i個神經元到第j個神經元的連接強度或稱權重。神經元的輸入是接收信息X=(x1,x2,…,xn)與權重W={ωij}的點積,將輸入與設定的某一閾值作比較,再經過某種神經元激活函數f的作用,便得到該神經元的輸出Oi。常見的激活函數為Sigmoid型。人工神經元的輸入與輸出的關系為

地球物理勘探概論

式中:xi為第i個輸入元素,即n維輸入矢量X的第i個分量;ωi為第i個輸入與處理單元間的互聯權重;θ為處理單元的內部閾值;y為處理單元的輸出。

常用的人工神經網路是BP網路,它由輸入層、隱含層和輸出層三部分組成。BP演算法是一種有監督的模式識別方法,包括學習和識別兩部分,其中學習過程又可分為正向傳播和反向傳播兩部分。正向傳播開始時,對所有的連接權值置隨機數作為初值,選取模式集的任一模式作為輸入,轉向隱含層處理,並在輸出層得到該模式對應的輸出值。每一層神經元狀態隻影響下一層神經元狀態。此時,輸出值一般與期望值存在較大的誤差,需要通過誤差反向傳遞過程,計算模式的各層神經元權值的變化量

。這個過程不斷重復,直至完成對該模式集所有模式的計算,產生這一輪訓練值的變化量Δωij。在修正網路中各種神經元的權值後,網路重新按照正向傳播方式得到輸出。實際輸出值與期望值之間的誤差可以導致新一輪的權值修正。正向傳播與反向傳播過程循環往復,直到網路收斂,得到網路收斂後的互聯權值和閾值。

(二)BP神經網路計算步驟

(1)初始化連接權值和閾值為一小的隨機值,即W(0)=任意值,θ(0)=任意值。

(2)輸入一個樣本X。

(3)正向傳播,計算實際輸出,即根據輸入樣本值、互聯權值和閾值,計算樣本的實際輸出。其中輸入層的輸出等於輸入樣本值,隱含層和輸出層的輸入為

地球物理勘探概論

輸出為

地球物理勘探概論

式中:f為閾值邏輯函數,一般取Sigmoid函數,即

地球物理勘探概論

式中:θj表示閾值或偏置;θ0的作用是調節Sigmoid函數的形狀。較小的θ0將使Sigmoid函數逼近於閾值邏輯單元的特徵,較大的θ0將導致Sigmoid函數變平緩,一般取θ0=1。

(4)計算實際輸出與理想輸出的誤差

地球物理勘探概論

式中:tpk為理想輸出;Opk為實際輸出;p為樣本號;k為輸出節點號。

(5)誤差反向傳播,修改權值

地球物理勘探概論

式中:

地球物理勘探概論

地球物理勘探概論

(6)判斷收斂。若誤差小於給定值,則結束,否則轉向步驟(2)。

(三)塔北雅克拉地區BP神經網路預測實例

以塔北雅克拉地區S4井為已知樣本,取氧化還原電位,放射性元素Rn、Th、Tc、U、K和地震反射

構造面等7個特徵為識別的依據。

構造面反映了局部構造的起伏變化,其局部隆起部位應是油氣運移和富集的有利部位,它可以作為判斷含油氣性的諸種因素之一。在該地區投入了高精度重磁、土壤微磁、頻譜激電等多種方法,一些參數未入選為判別的特徵參數,是因為某些參數是相關的。在使用神經網路方法判別之前,還採用K-L變換(Karhaem-Loeve)來分析和提取特徵。

S4井位於測區西南部5線25點,是區內唯一已知井。該井在5390.6m的侏羅系地層獲得40.6m厚的油氣層,在5482m深的震旦系地層中獲58m厚的油氣層。取S4井周圍9個點,即4~6線的23~25 點作為已知油氣的訓練樣本;由於區內沒有未見油的鑽井,只好根據地質資料分析,選取14~16線的55~57點作為非油氣的訓練樣本。BP網路學習迭代17174次,總誤差為0.0001,學習效果相當滿意。以學習後的網路進行識別,得出結果如圖6-2-4所示。

圖6-2-4 塔北雅克拉地區BP神經網路聚類結果

(據劉天佑等,1997)

由圖6-2-4可見,由預測值大於0.9可得5個大封閉圈遠景區,其中測區南部①號遠景區對應著已知油井S4井;②、③號油氣遠景區位於地震勘探所查明的托庫1、2號構造,該兩個構造位於沙雅隆起的東段,其西段即為1984年鑽遇高產油氣流的Sch2井,應是含油氣性好的遠景區;④、⑤號遠景區位於大澇壩構造,是yh油田的組成部分。