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 隱含層輸入...