日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab小波神经网络,MATLAB 小波神经网络预测求助大神

發(fā)布時間:2023/12/14 循环神经网络 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab小波神经网络,MATLAB 小波神经网络预测求助大神 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

神經網絡初始化

從數據庫下載訓練程序和預測數據,初始化神經網絡結構、權值和函數參數,并對訓練數據進行歸一化處理。其中,input、output分別為訓練輸

入和輸出數據,input_test、output_test分別為預測輸入和輸出數據。

%從數據庫下載數據

load distance input output input_test output_test

%網絡結構初始化

M=4;

N=1;

n=6;

%權值和參數學習率

lr1=0.01;

lr2=0.001;

maxgen=100; %網絡迭代學習次數

%網絡權值初始化

Wjk=randn(n,M);

Wij=randn(N,n);

a=randn(1,n);

b=randn(1,n);

%權值學習增量初始化

d_Wjk=zeros(n,M);

d_Wjk=zeros(N,n);

d_a=zeros(1,n);

d_b=zeros(1,n);

%訓練數據歸一化

[inputn,inputps]=mapminmax(input');

[outputn,outputps]=mapminmax(output');

inputn=inputn';

outputn=outputn';

用訓練數據訓練神經網絡,使神經網絡具有短時過駁滑道長度的預測能力。

%網絡訓練

for i=1:maxgen

error(i)=0; %記錄每次誤差

%網絡訓練

for kk=1:size(input,1)

%提取輸入輸出數據

x=inputn(kk,:);

yqw=outputn(kk,:);

%網絡預測輸出

for j=1:n

for k=1:M

net(j)=net(j)+Wjk(j,k)*x(k);

net_ab(j)=(net(j)-b(j))/a(j);

end

temp=mymorlet(net_ab(j));

for k=1:N

y=y+Wij(k,j)*temp;

end

end

%誤差累計

error(i)=error(i)+sum(abs(yqw-y));

%權值修正

for j=1:n

%計算d_Wij(Wij修正值)

temp=mymorlet(net_ab(j));

for k=1:N

d_Wij(k,j)=d_Wij(k,j)-(yqw(k)-y(k))*temp;

end

%計算d_Wij(Wij修正值)

temp=d_mymorlet(net_ab(j));

for k=1:M

for 1=1:N

d_Wjk(j,k)=d_Wjk(j,k)+(yqw(1)-y(1)*Wij(1,j);

end

d_Wjk(j,k)=-d_Wjk(j,k)*temp*x(k)/a(j);

end

%計算d_b(b修正值)

for k=1:N

d_b(j)=d_b(j)+(yqw(k)-y(k))*Wij(k,j);

end

d_b(j)=d_b(j)*temp/a(j);

%計算d_a(a修正值)

for k=1:N

d_a(j)=d_a(j)+(yqw(k)-y(k))*Wij(k,j);

end

d_a(j)=d_a(j)*temp*((net(j)-b(j))/b(j))/a(j);

end

% 權值參數更新

Wij=Wij-lr1*d_Wij;

Wjk=Wjk-lr1*d_Wjk;

b=b-lr2*d_b;

a=a-lr2*d_a;

d_Wjk=zeros(n,M);

d_Wij=zeros(N,n);

d_a=zeros(1,n);

d_b=zeros(1,n);

y=zeros(1,N);

net=zeros(1,n);

net_ab=zeros(1,n);

end

end

其中,程序包含的函數mymorlet以及偏導函數d_mymorlet的形式如下:

function y=mymorlet(t)

% 該函數計算函數輸出

% t input 輸入變量

% y output 輸出變量

y=exp(-(t.^2)/2)*cos(1.75*t);

function y=d_mymorlet(t)

% 該函數用于計算函數偏導函數輸出

% t input 輸入變量

% y output 輸出變量

y =-1.75*sin(1.75*t).*exp(-(t.^2)/2)-t*cos(1.75*t).*exp(-(t.^2)/2);

用訓練好的神經網絡預測短時間過駁滑道的距離,并以圖形的形式表示神經網絡預測結果。

%預測輸入歸一化

x=mapminmax('apply',input_test',inputps);

x=x';

%網絡預測

for i=1:92

x_test=x(i,:);

for j=1:1:n

for k=1:1:M

net(j)=net(j)+Wjk(j,k)*x_test(k);

net_ab(j)=(net(j)-b(j))/a(j);

end

temp=mymorlet(net_ab(j));

for k=1:N

y(k)=y(k)+Wij(k,j)*temp;

end

end

yuce(i)=y(k); %預測結果記錄

y=zeros(1,N); %輸出節(jié)點初始化

net=zeros(1,n); %隱含節(jié)點初始化

net_ab=zeros(1,n); %隱含節(jié)點初始化

end

%網絡預測反歸一化

ynn=mapmonmax('reverse',yuce,outputps);

figure(1)

plot(ynn,'r:')

hold on

polt(output_test,'b- -')

title('預測過駁滑道長度',fontsize',12)

legend('預測過駁滑道長度','實際過駁滑道長度')

xlabel('時間點')

ylabel('過駁滑道長度')

總結

以上是生活随笔為你收集整理的matlab小波神经网络,MATLAB 小波神经网络预测求助大神的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。