小波神经网络程序

上传人:mg****85 文档编号:37106413 上传时间:2018-04-07 格式:DOC 页数:3 大小:26.50KB
返回 下载 相关 举报
小波神经网络程序_第1页
第1页 / 共3页
小波神经网络程序_第2页
第2页 / 共3页
小波神经网络程序_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《小波神经网络程序》由会员分享,可在线阅读,更多相关《小波神经网络程序(3页珍藏版)》请在金锄头文库上搜索。

1、这是一个小波神经网络程序,作者 judyever %参考 2001 年第 1 期 一种基于 BP 算法学习的小波神经网络%step1-网络初始化-clc;clear all;%设定期望的误差最小值err_goal=0.001;%设定最大循环次数max_epoch=50;%设定修正权值的学习速率 0.01-0.7lr=0.7;epoch=0;x=0:0.01:0.3;%输入时间序列d=sin(8*pi*x)+sin(16*pi*x);%目标输出序列M=size(x,2);%输入节点的个数N=M;%输出节点的个数n=10;%隐形节点的个数%这个地方需要改进,由于实际上隐形节点的个数可以通过小波的时

2、频分析确定Wjk=randn(n,M);Wij=randn(N,n);% a=randn(1,n);a=1:1:n;b=randn(1,n);% stepa=0.2*(x(M)-x(1);% a=stepa(n-1)+stepa;% step=(x(M)-x(1)/n;% b=x(1)+step:step:x(1)+n*step;% y=zeros(1,N);%输出节点初始化y=zeros(1,N);%输出节点初始化net=zeros(1,n);%隐形节点初始化net_ab=zeros(1,n);%隐形节点初始化%step2-对网络进行训练-for i=1:1:Nfor j=1:1:nfor

3、k=1:1:Mnet(j)=net(j)+Wjk(j,k)*x(k);net_ab(j)=(net(j)-b(j)/a(j);endy(i)=y(i)+Wij(i,j)*mymorlet(net_ab(j);%mymorlet 是 judyever 编写的小波函数,以后可以扩展成输入不同的小波名字即可% y(i)=mysigmoid(2,y(i);endend% plot(x,d,r,x,y); % title(训练前的目标序列和实际输出序列);err=d-y;SSE=err*err;%step3-调整各个参数-while (SSEerr_goal d_Wij=zeros(N,n);d_a=z

4、eros(1,n);d_b=zeros(1,n);for i=1:1:Nfor j=1:1:nd_Wij(i,j)=-(d(i)-y(i)*mymorlet(net_ab(j);%调整 d_Wij(i,j)for k=1:1:Md_Wjk(j,k)=d_Wjk(j,k)+ (d(i)-y(i) * Wij(i,j) ;%计算还没有结束d_Wjk(j,k)=-d_Wjk(j,k)*d_mymorlet(net_ab(j)*x(k)/a(j);%计算结束end%调整 d_Wjk(j,k)d_b(j)=d_b(j)+(d(i)-y(i)*Wij(i,j);%计算还没有结束d_b(j)=d_b(j)*

5、d_mymorlet(net_ab(j)/a(j);%计算结束%调整 d_b(j)d_a(j)=d_a(j)+(d(i)-y(i)*Wij(i,j);%计算还没有结束d_a(j)=d_a(j)*d_mymorlet(net_ab(j)*(net(j)-b(j)/b(j)/a(j);%计算结束%调整 d_a(j)endend%step4-网络重新计算-Wij=Wij-lr*d_Wij;Wjk=Wjk-lr*d_Wjk;b=b-lr*d_b;a=a-lr*d_a;%修正各个权值y=zeros(1,N);%输出节点初始化net=zeros(1,n);%隐形节点初始化net_ab=zeros(1,n)

6、;%隐形节点初始化for i=1:1:Nfor j=1:1:nfor k=1:1:Mnet(j)=net(j)+Wjk(j,k)*x(k);net_ab(j)=(net(j)-b(j)/a(j);endy(i)=y(i)+Wij(i,j)*mymorlet(net_ab(j);%mymorlet 是 judyever 编写的小波函数,以后可以扩展成输入不同的小波名字即可% y(i)=mysigmoid(2,y(i);endendepoch=epoch+1;err=d-y;SSE=err*err/M; epoch SSEend%step5-输出-plot(x,d,r,x,y,:); title(

7、训练后的目标序列和实际输出序列);% gtext(This is the first line,This is the second line)% gtext(First line,Second line,FontName,Times,Fontsize,12)legend(target output,WNN output,1);这里面用到的两个子程序分别是:function y=mymorlet(t)y = exp(-(t.2)/2) * cos(1.75*t);%555function y=d_mymorlet(t)y = -1.75*sin(1.75*t).*exp(-(t.2)/2)-t* cos(1.75*t).*exp(-(t.2)/2) ;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号