[問題]NARX模型

看板MATLAB作者 (小修)時間11年前 (2014/03/22 23:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
在Matlab類神經中,有一種時間序列預測方法是NARX模型 將此系統訓練完成後可以得到最終的一些參數值 包含net.IW,net.LW,net.b以及初始條件Pi,Ai 接下來我想自己重建此訓練好之類神經系統 但是卻遇到瓶頸,將上述資料全數帶入後,竟然與預期的輸出不相同 我想或許是我對此類神經的理解還不夠,想請問一下問題出在哪裡? load data y = con2seq(y); u = con2seq(u); d1 = [1:2]; d2 = [1:2]; narx_net = narxnet(d1,d2,4); narx_net.layers{1}.transferFcn = 'satlins'; narx_net.layers{2}.transferFcn = 'purelin'; [p,Pi,Ai,t] = preparets(narx_net,u,{},y); narx_net = train(narx_net,p,t,Pi); yp = sim(narx_net,p,Pi); narx_net_closed = closeloop(narx_net); <-欲自行重建此NARX %%%%將參數值取出%%%% Ai1 = cell2mat(Ai1); Pi1 = cell2mat(Pi1); IW1 = narx_net_closed.IW{1,1}; IW2 = narx_net_closed.LW{1,2}; LW = narx_net_closed.LW{2,1}; bI = narx_net_closed.b{1}; bL = narx_net_closed.b{2}; %欲模擬NARX load data NARX_struct = create_NARX(Pi1,Ai1(:,end)); for n = 1:3000 yy(n) = NARX(u_test(n+2),IW1,IW2,bI,LW,bL,NARX_struct); end %NARX副程式 function y = NARX(in,IW1,IW2,bI,LW,bL,NARX_struct) NARX_struct.hidden_in = IW1*[NARX_struct.input_d1;NARX_struct.input_d2] + IW2*[NARX_struct.output_d1;NARX_struct.output_d2] + bI; NARX_struct.hidden_out = satlins(NARX_struct.hidden_in); NARX_struct.output_in = LW*NARX_struct.hidden_out + bL; NARX_struct.output_out = purelin(NARX_struct.output_in); NARX_struct.input_d1 = NARX_struct.input_d2; NARX_struct.input_d2 = in; NARX_struct.output_d1 = NARX_struct.output_d2; NARX_struct.output_d2 = NARX_struct.output_out; y = NARX_struct.output_out; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.160.118.192 ※ 編輯: jack0711 來自: 1.160.118.192 (03/22 23:42)
文章代碼(AID): #1JBQu_4A (MATLAB)
文章代碼(AID): #1JBQu_4A (MATLAB)