MATLAB神經網路學習入門之BP神經網路

2021-10-11 01:27:19 字數 2126 閱讀 2775

%%%

bp神經網路

%有導師學習神經網路

%前向神經網路(誤差反向傳播)

%要求啟用函式可導/可微分

%學習演算法:1. propagation 2. weight update--梯度下降

%資料歸一化?(可以應用到julien專案的資料中)

%newff-- create feed-forward backpropagation network

%train-- train neural network

%sim-- simulate neural network

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

temp=

randperm

(size

(features,1)

);p_train=

features

(temp(1

:300),

:)';

t_train=

activity

(temp(1

:300),

:)';

%測試集

p_test=

features

(temp

(301

:end),:

)';t_test=

activity

(temp

(301

:end),:

)';n

=size

(p_test,2)

;%% 資料歸一化

[p_train,ps_input]

=mapminmax

(p_train,0,

1);p_test=

mapminmax

(,p_test,ps_input)

;[t_train,ps_output]

=mapminmax

(t_train,0,

1);%

%bp神經網路建立,訓練及**測試

%建立網路

net=

newff

(p_train,t_train,9)

;%設定訓練引數

net.trainparam.epochs=

1000

;net.trainparam.goal=

1e-3

;net.trainparam.lr=

0.01

;%訓練網路

net=

train

(net,p_train,t_train)

;%**測試

t_sim=

sim(net,p_test)

;%資料反歸一化

t_sim=

mapminmax

('reverse'

,t_sim,ps_output);%

% 效能評價

%1. 相對誤差error

error=

abs(t_sim-t_test)

./t_test;

%2. 決定係數r^2

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));

%3. 結果對比

result=

[t_test' t_sim' error'];%

% 繪圖

figure

plot(1

:n,t_test,

'b:*',1

:n,t_sim,

'r-o'

)legend

('真實值'

,'**值'

)xlabel

('**樣本'

)ylabel

('activity'

)string=

;title

(string)

線性神經網路 matlab神經網路

自適應線性元件20世紀50年代末由widrow和hoff提出,主要用於線性逼近乙個函式式而進行模式聯想以及訊號濾波 模型識別和控制等。線性神經網路和感知器的區別是,感知器只能輸出兩種可能的值,而線性神經網路的輸出可以取任意值。線性神經網路採用widrow hoff學習規則,即lms least me...

MATLAB神經網路

ai 菌這幾天沉迷於數模的ai菌來補發文章啦。深深地體會到雖然神經網路工具的api已經有了非常完備的封裝,但是資料的預處理真的讓人感覺非常的麻煩。當你把所有的異常點一一清理,有一種 掘地求公升終於爬出大氣層 飛向太空的感覺 雖然ai菌連夢想開始的地方都爬不出去 所以今天就來介紹一下這幾天的收穫吧 a...

神經網路學習之 Hopfield神經網路

1982年,美國加州理工學院的優秀物理學家hopfield提出了hopfield神經網路。hopfield神經網路引用了物理力學的分析方法,把網路作為一種動態系統並研究這種網路動態系統的穩定性。dhnn 離散型hopfield神經網路 這是一種單層全反饋網路,共有n個神經元。其特點是任一神經元的輸出...