文档详情

小波神经网络程序.doc

发布:2017-12-15约8.46千字共10页下载文档
文本预览下载声明
主要思想: 用小波变换代替普通神经网络的激励函数 小波的参数b(平移因子)和a(伸缩因子)以及小波前的系数W 在网络中受到训练以逼近目标函数(信号)。 附件是我简单地画了一下流程图 %BP小波神经网络快速学习算法 clear clc SamIn=-10:0.01:10; SamOut=2*sin(3*SamIn).*exp(-0.1*SamIn.*SamIn); % figure;plot(SamIn,SamOut); % pause % Bp小波神经网络参数初始化 W=rand(15,1); B=10*rands(15,1); % 对伸缩因子A进行初始化 temp=rand(15,1); i=1; while(i=15) ? ? if temp(i,1)=0.5 ? ?? ???A(i,1)=2*temp(i,1); ? ? else ? ?? ???A(i,1)=8*temp(i,1)-3; ? ? end ? ? i=i+1; end % BP算法训练小波神经网络 N=2001; g=1.01; l=0.0008; t=SamIn; study_rate=0.08; count=0; Err_NetworkOut_SamOuts=[];? ?% 全局变量 NetworkOutSet=[];? ?? ?? ?? ?% 局部变量 ? ? for i=1:N ? ?? ???NetworkOut=0;? ?? ???% 局部变量 ? ?? ???for j=1:15 ? ?? ?? ?? ?tao=(t(i)-B(j,1))/A(j,1); ? ?? ?? ?? ?h=cos(1.75*tao).*exp(-tao^2/2); ? ?? ?? ?? ?NetworkOut=NetworkOut+h*W(j,1); ? ?? ???end ? ?? ???NetworkOutSet=[NetworkOutSet NetworkOut]; ? ? end ? ? % 计算误差函数和相对误差 ? ? count=count+1; ? ? Err_NetworkOut_SamOut=(1/2)*sumsqr(NetworkOutSet-SamOut);? ?? ?% 误差函数 ? ? former=Err_NetworkOut_SamOut;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? % 记录前一次的误差 ? ? Err_NetworkOut_SamOuts=[Err_NetworkOut_SamOuts Err_NetworkOut_SamOut]; % 误差函数集合 ? ? Err_SamOut=(1/2)*sumsqr(SamOut);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?% 函数平方和 ? ? ErrRate=Err_NetworkOut_SamOut/Err_SamOut;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?% 相对误差 ? ? % 计算增加量 ? ? E_diff_W=0; % 局部变量 ? ? E_diff_B=0; % 局部变量 ? ? E_diff_A=0; % 局部变量 ? ? E_diff_W1=[]; % 局部变量 ? ? E_diff_B1=[]; % 局部变量 ? ? E_diff_A1=[]; % 局部变量 ? ? for i=1:15 ? ?? ???for j=1:N ? ?? ?? ?? ?tao=(t(j)-B(i,1))/A(i,1); ? ?? ?? ?? ?h=cos(1.75*tao).*exp(-tao^2/2); ? ?? ?? ?? ?f=1.75*sin(1.75*tao)+tao*cos(1.75*tao); ? ?? ?? ?? ?s1=SamOut(j)-NetworkOutSet(j); ? ?? ?? ?? ?s2=s1*h; ? ?? ?? ?? ?s3=s1*(W(i,1)/A(i,1))*exp(-tao^2/2).*f; ? ?? ?? ?? ?E_diff_W=E_diff_W+s2; ? ?? ?? ?? ?E_diff_B=E_diff_B+s3; ? ?? ?? ?? ?E_diff_A=E_diff_A+s3*tao; ? ?? ???end ? ?? ???E_diff_W=-E_diff_W; ? ?? ???E_diff_B=-E_diff_B; ? ?? ???E_diff_A=-E_diff_A; ? ?? ???E_diff_W1=[E_diff_W1,E_diff_W]; ? ?? ???E_diff_B1=[E_diff_B1,E_diff_B
显示全部
相似文档