• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签:

资源简介

完整可直接运行的小波神经网络程序,有注释,很容易看懂

资源截图

代码片段和文件信息

%% 清空环境变量
clc
clear

%% 网络参数配置
load traffic_flux input output input_test output_test

M=size(input2); 
N=size(output2); 

n=6; 
lr1=0.01; 
lr2=0.001; 
maxgen=100; 

%权值初始化
Wjk=randn(nM);Wjk_1=Wjk;Wjk_2=Wjk_1;
Wij=randn(Nn);Wij_1=Wij;Wij_2=Wij_1;
a=randn(1n);a_1=a;a_2=a_1;
b=randn(1n);b_1=b;b_2=b_1;

%节点初始化
y=zeros(1N);
net=zeros(1n);
net_ab=zeros(1n);

%权值学习增量初始化
d_Wjk=zeros(nM);
d_Wij=zeros(Nn);
d_a=zeros(1n);
d_b=zeros(1n);

%% 输入输出数据归一化
[inputninputps]=mapminmax(input‘);       
[outputnoutputps]=mapminmax(output‘); 
inputn=inputn‘;
outputn=outputn‘;

error=zeros(1maxgen);
%% 网络训练
tic
for i=1:maxgen
    
    %误差累计
    error(i)=0;
    
    % 循环训练
    for kk=1:size(input1)  
        x=inputn(kk:);    
        yqw=outputn(kk:);
        for j=1:n           
            for k=1:M       
                net(j)=net(j)+Wjk(jk)*x(k);  
                net_ab(j)=(net(j)-b(j))/a(j); 
            end
            temp=mymorlet(net_ab(j));
            for k=1:N       
                y=y+Wij(kj)*temp;  
            end
        end
        
        %计算误差和
        error(i)=error(i)+sum(abs(yqw-y));
        
        %权值调整
        for j=1:n
            %计算d_Wij
            temp=mymorlet(net_ab(j));  
            for k=1:N
                d_Wij(kj)=d_Wij(kj)-(yqw(k)-y(k))*temp;
            end
            %计算d_Wjk
            temp=d_mymorlet(net_ab(j));
            for k=1:M
                for l=1:N
                    d_Wjk(jk)=d_Wjk(jk)+(yqw(l)-y(l))*Wij(lj) ;
                end
                d_Wjk(jk)=-d_Wjk(jk)*temp*x(k

评论

共有 条评论