BP神經網路經典例子

2021-09-28 14:35:37 字數 3100 閱讀 5854

bp神經網路經典例子——

基於近紅外光譜的汽油辛烷值測試

我這裡找到了兩個不同的**(matlab實現),都可以試一下,需要資料檔案的再可以找我要下,第乙個方法比較簡練,第二個十分詳細(圖多)。

**:

load spectra_data.mat %第乙個方法,生成圖較少

temp =

randperm

(size

(nir,1

)); p_train =

nir(

temp(1

:50),

:)';

t_train =

octane

(temp(1

:50),

:)';

p_test =

nir(

temp(51

:end),:

)';t_test =

octane

(temp(51

:end),:

)';n

=size

(p_test,2)

;net =

newrbe

(p_train,t_train,

0.3)

; w1=net.iw

isequal

(w1',p_train)

b1=net.b

t_sim =

sim(net,p_test)

;error =

abs(t_sim - t_test)

./t_test;r2=

(n*sum

(t_sim .

* t_test)

-sum

(t_sim)

*sum

(t_test))^

2/((

n*sum(

(t_sim).^

2)-(

sum(t_sim))^

2)*(

n*sum(

(t_test).^

2)-(

sum(t_test))^

2));

result =

[t_test' t_sim' error']

figure

plot(1

:n,t_test,

'b:*',1

:n,t_sim,

'r-o'

)legend

('真實值'

,'**值'

)xlabel

('**樣本'

)ylabel

('辛烷值'

)string =

;title

(string)

clear all;

%第二個方法

clcload spectra_data.mat%產生訓練集/測試集

temp=

randperm

(size

(nir,1

));%隨機產生訓練集和測試集

p_train=

nir(

temp(1

:50),

:)';

t_train=

octane

(temp(1

:50),

:)'; %訓練集50個樣本p_test=nir(temp(51:end),:)'

;t_temp=

octane

(temp(51

:end),:

)';%測試集 10個樣本n=

size

(p_test,2)

; net=

newff

(p_train,t_train,5)

;%建立/訓練bp神經網路

net.trainparam.epochs=

1000

;net.trainparam.goal=

1e-3

;net.trainparam.lr=

0.01

;net=

train

(net,p_train,t_train)

;%訓練網路

t_sim_bp=

sim(net,p_test)

;%**測試

net=

newrbe

(p_train,t_train,

0.5)

;%建立bpf神經網路

t_sim_rbf=

sim(net,p_test)

;%**測試

%效能評價

error_bp=

abs(t_sim_bp-t_test)

./t_test;

error_rbf=

abs(t_sim_rbf-t_test)

./t_test;

%相對誤差

r2_bp=(n

*sum

(t_sim_bp.

*t_bp)

-sum

(t_sim_bp)

*sum

(t_test))^

2/((

n*sum(

(t_sim_bp).^

2)-(

sum(t_sim_bp))^

2)*(

n*sum(

(t_test).^

2)-(

sum(t_test))^

2));

%決定係數r^2

result=

[t_test't_sim_bp't_sim_rbf'error_bp'error_rbf']

%結果對比

figure %繪圖

plot(1

:n,t_test,

'b:*',1

:n,t_sim_bp,

'r-o',1

:n,t_sim_rbf,

'k-.^'

)legend

('真實值'

,'bp**值'

,'rbf**值'

)xlabel

('**樣本'

)ylabel

('辛烷值'

)string=

;title

(string)

BP神經網路

基本bp神經網路演算法包括 訊號的前向傳播 誤差的反向傳播 也即計算實際輸出時按照輸入到輸出的方向進行,權值閾值調整則相反。bp是一種多層前饋神經網路,由輸入層 隱含層和輸出層組成。層與層之間有兩種訊號在流動 一種是從輸入流向輸出的工作訊號,是輸入和權值的函式 另一種是輸入流向輸出的訊號,即誤差。隱...

BP神經網路

x 為輸入向量,y為隱藏層的神經元,z 為輸出層,d為目標真實值,本文預設 z 不經過sigmod處理。x y的權重為 w,y z的權重為 v yj ix iwij 1 oyi f y j 2 其中激勵函式f x 1 1 e x f x f x 1 f x 3 z k j f yj vjk 此時系統...

BP神經網路

bp是back propagation bp神經網路主要的演算法在於誤差反向傳播error backpropagation 有三層 輸入層 input 隱含層 hidden 輸出層 output 輸入層 n個神經元 隱含層 p個神經元 輸出層 q個神經元 輸入向量 x x1,x2,x n 隱含層輸入...