導航:首頁 > 網路設置 > 神經網路的學習率設置值

神經網路的學習率設置值

發布時間:2023-04-11 01:47:27

Ⅰ 神經網路中學習率、批處理樣本數量、迭代次數有什麼意義和影響

學習率是指每次訓練過程中(迭代)變數改變(更新)的比率,例如x(t+1) = x(t) - a * delta
其中a可以看出學習率,一般在0 - 1之間,相當於步長,而delta相當於方向。
批處理樣本數量,標準的BP是單樣本學習的方法,例如圖片識別,第一個圖是貓,然後輸入圖像,網路學習一次(變數更新一次),學習到圖片的特徵,然後再輸入第二個圖片狗,在前面的基礎上再學習。 而批訓練,就是說兩個圖片一起輸入後,計算兩個樣本學習的平均的誤差(Loss), 從整體上來學習整個訓練樣本集合,這樣的學習對於大樣本數據更加有效率。
迭代次數就是學習的次數了,每次迭代就是向最優點前進的一小步,神經網路要學習到樣本的特徵,那就要一步一步地走,走了很多步才能到達符合精度地地點,所以需要學習很多次。

Ⅱ AI數學基礎14——神經網路的參數和超參數

神經網路的參數( Parameters ),是指神經網路模型內部的配置變數,比如W、b,可以用訓練的方式獲得

神經網路的超參數( Hyper Parameters) ,是神經網路模型外部的配置參數,比如學習率a、隱藏層數L、隱藏層單元數、激活函數的選擇、momentum、mini batch size、regularization parameters等等,這些參數不能從訓練中得到, 必須手動設置, 並且影響最後的參數W和b的值 。

訓練神經網路的過程,也是系統性調整神經網路超參數的過程;Andrew Ng說:「經常試試不同的超參數,勤於檢查結果,看看有沒有更好的超參數取值,你將會得到設定超參數的直覺」

Ⅲ 有哪位大神知道BP神經網路變學習率學習演算法在Matlab中怎麼實現啊

額。。。
一種啟發式的改進就是,為學習速率選用自適應值,它依賴於連續迭代步驟中的誤差函數值。
自適應調整學習速率的梯度下降演算法,在訓練的過程中,力圖使演算法穩定,同時又使學習的步長盡量地大,學習速率則是根據局部誤差曲面作出相應的調整。當誤差以減小的方式趨於目標時,說明修正方向正確,於是步長(學習速率)增加,因此學習速率乘以增量因子Ir_inc,使學習速率增加;而當誤差增加超過設定的值C倍時,說明修正過頭,應減小步長,因此學習速率乘以減量因子Ir_dec,使學習速率減少.其他情況學習速率則不變。
Matlab 里有對應的變學習速率的函數。
bpnet=newff(x,[60,4],{'logsig','logsig'},'traingda'); %'traingda'表示自適應學習速率調整方法
bpnet.trainParam.show=50;
bpnet.trainParam.lr=0.01; %預設值的學習速率
bpnet.trainParam.epochs=3000;
bpnet.trainParam.goal=0.247;
bpnet.trainParam.Ir_inc=1.05; %增加的學習速率倍數,默認為1.05
bpnet.trainParam.Ir_dec=0.7; %減少的學習速率倍數,默認為0.7
bpnet.trainParam.max_perf_inc=1.04; %誤差函數增加為迭代前的1.04時,減少學習速率。默認為1.04
[bpnet]=train(bpnet,p,t);
save bpnet;
%%%%%%%%%%%%%%%%%%%%

Ⅳ 能不能介紹一下,BP神經網路中權系數初始值、學習率(步長)、學習步數、學習目標最小誤差等參數

權值第一次是被隨機給定的較小的值,步長一般設為較小的正值(防止越過最小值),學習步數是由權值和步長決定的,誤差一般採用最小均方誤差。
詳細的介紹可以網路一下很多課件或者課本的。若不想找我可以發給你,給我郵箱。

Ⅳ 神經網路參數hyper-parameters選擇

我們到目前為止在神經網路中使用了好幾個參數, hyper-parameters包括:

學習率(learning rate):η

Regularization parameter:λ

之前只是設置了一些合適的值, 如何來選擇合適的hyper-parameters呢?

例如:

我們設置如下參數:

隱藏層: 30個神經元, mini-batch size: 10, 訓練30個薯正epochs

η=10.0, λ=1000.0

>>>importmnist_loader>>>

training_data,validation_data,test_data=\...mnist_loader.load_data_wrapper()

>>>importnetwork2>>>net=network2.Network([784,30,10])     >>數氏悔>net.SGD(training_data,30,10,10.0,lmbda=1000.0,...evaluation_data=validation_data,monitor_evaluation_accuracy=True)

結果:

結果: Epoch 0 training complete Accuracy on evaluation data: 1030 / 10000

Epoch 1 training complete Accuracy on evaluation data: 990 / 10000 

Epoch 2 training complete Accuracy on evaluation data: 1009 / 10000

差到跟隨機猜測一樣!

神經網路中可變化調整的因素很多:

神經網路結構::層數、每層神經元個數多少

初始化w和b的方法

Cost函數(目標定義的cost函數最小)

Regularization: L1、L2(減少overfitting的方式)

Sigmoid輸出還是Softmax?

使用Droput?

訓練集大小

mini-batch size()

學習率(learning rate):η

Regularization parameter:λ

總體策略: 

從簡單的出發:開始實驗,循環的個數減小

如:MNIST數據集, 開始不知如何設置, 可以先簡化使用0,1兩類圖, 減少80%數據量, 用兩層神經網路[784, 2] (比[784, 30, 2]快),取得設置是否合理?核困

更快的獲取反饋: 之前每個epoch來檢測准確率, 可以替換為每1000個圖之後,或者減少validation set的量, 比如用100代替10000

重復實驗:

>>> net = network2.Network([784, 10]) 

>>> net.SGD(training_data[:1000], 30, 10, 10.0, lmbda = 1000.0, \ ... evaluation_data=validation_data[:100], \ ... monitor_evaluation_accuracy=True) 

Epoch 0 training complete Accuracy on evaluation data: 10 / 100 

 Epoch 1 training complete Accuracy on evaluation data: 10 / 100 

 Epoch 2 training complete Accuracy on evaluation data: 10 / 100

更快得到反饋, 之前可能每輪要等10秒,現在不到1秒: λ之前設置為1000, 因為減少了訓練集的數量, λ為了保證weight decay一樣,對應的減少λ = 20.0

>>> net = network2.Network([784, 10]) 

>>> net.SGD(training_data[:1000], 30, 10, 10.0, lmbda = 20.0, \ ... evaluation_data=validation_data[:100], \ ... monitor_evaluation_accuracy=True)

結果:

Epoch0 training complete Accuracy one valuationdata:12/100

Epoch1 training complete Accuracy one valuationdata:14/100

Epoch2 training complete Accuracy one valuationdata:25/100

Epoch3 training complete Accuracy one valuationdata:18/100

也許學習率η=10.0太低? 應該更高?增大到100:

>>>net=network2.Network([784,10])

>>>net.SGD(training_data[:1000],30,10,100.0,lmbda=20.0,\...evaluation_data=validation_data[:100],\...monitor_evaluation_accuracy=True)

結果:

Epoch0 training complete Accuracy one valuationdata:10/100

Epoch1 training complete Accuracy one valuationdata:10/100

Epoch2 training complete Accuracy one valuationdata:10/100

Epoch3 training complete Accuracy one valuationdata:10/100

結果非常差, 也許結果學習率應該更低? =10

>>>net=network2.Network([784,10])

>>>net.SGD(training_data[:1000],30,10,1.0,lmbda=20.0,\...evaluation_data=validation_data[:100],\...monitor_evaluation_accuracy=True)

結果好很多:

Epoch0 training complete Accuracy one valuationdata:62/100

Epoch1 training complete Accuracy one valuationdata:42/100

Epoch2 training complete Accuracy one valuationdata:43/100

Epoch3 training complete Accuracy one valuationdata:61/100

假設保持其他參數不變: 30 epochs, mini-batch size: 10,λ=5.0

實驗學習率=0.025, 0.25, 2.5

如果學習率太大,可能造成越走越高,跳過局部最低點 太小,學習可能太慢

對於學習率, 可以從0.001, 0.01, 0.1, 1, 10 開始嘗試, 如果發現cost開始增大, 停止, 實驗更小的微調 。

對於MNIST, 先找到0.1, 然後0.5, 然後0.25。

對於提前停止學習的條件設置, 如果accuracy在一段時間內變化很小 (不是一兩次,5到10次變化很小)。

之前一直使用學習率是常數, 可以開始設置大一下, 後面逐漸減少: 比如開始設定常數, 直到在驗證集上准確率開始下降, 減少學習率 (/2, /3)。

對於regularization parameterλ:

先不設定regularization, 把學習率調整好, 然後再開始實驗λ, 1.0, 10, 100..., 找到合適的, 再微調。

對於mini-batch size:

太小: 沒有充分利用矩陣計算的library和硬體的整合的快速計算。

太大: 更新權重和偏向不夠頻繁。

好在mini-batch size和其他參數變化相對獨立, 所以不用重新嘗試, 一旦選定。

自動搜索: 網格狀搜索各種參數組合

 (grid search) 2012**Random search for hyper-parameter optimization, by James Bergstra and Yoshua Bengio (2012). by James Bergstra and Yoshua Bengio 1998 

paper**Efficient BackProp, by Yann LeCun, Léon Bottou, Genevieve Orr and Klaus-Robert Müller (1998) by Yann LeCun, Léon Bottou, Genevieve Orr and Klaus-Robert Müller. 

參數之前會互相影響 如何選擇合適的hyper-parameters仍是一個正在研究的課題,

隨機梯度下降有沒有其他變種: Hessian 優化, Momentum-based gradient descent 

除了sigmoid,其他人工神經網路的模型? 

tanh

tanh(w⋅x+b)

要靠實驗比較rectified、linear和sigmoid,tanh的好壞,目前神經網路還有很多方面理論基礎需要研究,為什麼學習能力強,現在的一些實驗表明結果比較好,但發展底層理論基礎還有很長的路要走。

Ⅵ 你好,請問你知道在matlab神經網路工具箱里,學習率在哪裡設置嗎

lr就是學習率,performance是主要指標,你在程序里寫的goal就是MSE,決定最後精度的。

%%BP演算法
functionOut=bpnet(p,t,p_test)
globalS1
net=newff(minmax(p),[S1,8],{'tansig','purelin'},'trainlm');%trainlm訓練函數最有效
%net=newff(P,T,31,{'tansig','purelin'},'trainlm');%新版用法
net.trainParam.epochs=1000;
net.trainParam.goal=0.00001;
net.trainParam.lr=0.01;%這是學習率
net=train(net,p,t);
Out=sim(net,p_test);
end


Ⅶ BP神經網路的mu參數是學習率么訓練結果val fail中的validation check=6什麼意思

神經網路的樣本若輸入網路,默認情況下會將樣本隨即分為3類:訓練樣本,確認樣本和測試樣本。確認檢查值默認是6,它的意思是指隨著網路利用訓練樣本進行訓練的過程中,確認樣本的誤差曲線連續6次迭代不在下降。這時訓練終止(這只是訓練終止條件之一,滿足任一終止條件,訓練過程都將終止)深層含義你可以這樣理解,如果隨著網路的訓練,確認樣本的誤差已經基本不在減小,甚至增大,那麼就沒有必要再去訓練網路了,因為繼續訓練下去的話,在利用測試樣本進行測試網路的話,測試樣本的誤差將同樣不會有所改善,甚至會出現過度擬合的現象。validation checks已經達到設置的值了,所以停止訓練了,如果網路在連續max_fail epochs後不能提高網路性能,就停止訓練。
有三種方法解決這個問題:
1 提高validation checks的數值,比如設置net.trainParam.max_fail = 200;其實這等於自己糊弄自己嚴重不推薦,出現停止訓練,就是因為被訓練的網路已經過擬合,停下來是應該的。但6的確有點小,建議改成10到20之間的數
2 修改被訓練的網路,比如說再加一個隱藏層試試
3 如果是數據太相近的問題,試試選擇用divideind

Ⅷ 神經網路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)。這種方法試圖消除梯度的大小對權步的有害影響,因此,只有梯度的符號被認為表示權更新的方向。

權改變的大小僅僅由權專門的「更新值」

確定

中國礦產資源評價新技術與評價新模型

其中

表示在模式集的所有模式(批學習)上求和的梯度信息,(t)表示t時刻或第t次學習。

權更新遵循規則:如果導數是正(增加誤差),這個權由它的更新值減少。如果導數是負,更新值增加。

中國礦產資源評價新技術與評價新模型

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的梯度值

設為第epoch次學習產生的各層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 預測結果(部分)

續表

閱讀全文

與神經網路的學習率設置值相關的資料

熱點內容
寫好網路小說要多少錢 瀏覽:712
為什麼連了網還是網路異常 瀏覽:868
網路營銷建理論 瀏覽:802
代號網路圖在哪裡學的 瀏覽:697
早年電腦q版網路游戲 瀏覽:476
電腦哪裡找網路和控制中心 瀏覽:227
蘋果手機關機後沒有網路信號怎麼辦 瀏覽:318
網路被破壞了怎麼辦 瀏覽:170
領取花幣網路異常 瀏覽:277
電信網路有信號電視收不到節目 瀏覽:545
無緣無故網路不穩定怎麼回事 瀏覽:545
網路速度慢投訴到哪裡 瀏覽:246
無線網路機頂盒連接功放 瀏覽:168
電腦用網路傳大文件 瀏覽:843
如何通過雲計算轉型增強網路安全 瀏覽:963
網路語打棒球是什麼意思 瀏覽:758
手機掃描無線網路連接不上 瀏覽:599
c類ip地址可以支持多少網路 瀏覽:530
無網路的手機橫版格鬥游戲 瀏覽:950
區域網路狀態怎麼設置 瀏覽:276

友情鏈接