《数学软件应用实践》
姓名薄娇娇。
学院理学院。
专业11级数学与应用数学。
学号1110210307
2024年11月16日。
问题描述:传统的bp网络、rbf网络和cmac’网络等技术已经非常成熟。,应用广泛的同时也暴露很多局限性。
因此出现了混合神经网络技术〔如灰色神经网络)和同时改变权值和激励函数的基函数神经网络(如傅里叶神经网络);本作用开发的在传统bp算法的基础上将网络神经元中的激励闲数换成小波子函数,组建成的小波神经网络,亦属于基函数神经网络。小波神经网络是近几年国际上新兴的一种数学建模分析方程方法。
小波神经网络最早是由法国著名的信息科学研究机构 irlsa的 zhang qinghu等人2024年提出来的。小波神经用络是基于小波变换而构成的神经网络模型,即用非线性小波基取代通常的神经元非线性激励函数(如sigmoid函数),把小波变换与神经网络有机地结合起来,充分继承了两者的优点。近几年来,国内外有关小波网络的研究报告层出不穷。
小波与前馈神经网络是小波网络的主要研究方向。小波还可以与其他类型的神经网络结合,例如kohonen网络对信号做自适应小波分解。
图1 紧致型小波神经网络拓扑结构。
解决方法:本案例以mexihat小波函数为网络的输入和输出,数据采用逐个处理,三层网络拓扑结构,将神经元sigmoid函数换成morlet小波函数。这是因为函数morlet连续可导,时频局部化特性好,且函数表达式相对简单。
网络权植、小波函数的仲缩因子和平移因子的调整一与bp规则相同。取学习速率etri=0.02.
和动量因子aerfa=0.735,神经元数量h=15.
结果分析:1)由图可知,小波神经网络的拟合性能很好。网络训练2500次以后。
误差就基本不再变化,一般来说,鉴于小波神经网络的快速收敛的性能,训练次数在3000次以内为宜。神经元数目在满足误差精度的条件下、越少越好,否则网络结构松散,泛化能力退化,甚至引发网络的混沌效应。
2)所有的神经网络处理数据的方式有两种:数据逐个处理和批处理、本程序采用是前一种方法。这种方法的优点是编程目标清晰,容易实现。
缺点是逐个处理数据,网络在训练过程中会有遗忘性。网络的泛化能力即推理能力稍差,最主要的缺点会使网络学习过程时间的开支较大。因为程序中大量使用for循环语句。
附录:matlab程序。
融合拓扑结构的小波神经网络。
function main()
clc;clear all;close all;
用mexihat函数作为样本输入和输出。
样本输入值。
x=0:0.03:3;
c=2/(sqrt(3).*pi.^(1/4));
d=1/sqrt(2);
u=x/2-1;
目标函数的样本输出值。
targ=d.*c.*exp(-u.^2/2).*1-u.^2);
赋予网络学习速率和动量因子初始值。
eta=0.02;
aerfa=0.735;
初始化输出层和隐层的连接权wjh和隐层和输出层的连接权。
假设小波函数节点数为h,样本数为p,输出节点数为j,输入节点数为i.
h=15;p=2;
i=length(x);
j=length(targ);
%初始化小波参数。
b=rand(h,1);a=rand(h,1);
初始化权系数;
whi=rand(i,h);wjh=rand(h,j);
阈值初始化;
b1=rand(h,1);b2=rand(j,1);
p=0;保存的误差;
err_netout=
flag=1;count=0;
while flag>0
flag=0;
count=count+1;
xhp1=0;
for h=1:h
for i=1:i
xhp1=xhp1+whi(i,h)*x(i);
endixhp(h)=xhp1+b1(h);
xhp1=0;
endfor h=1:h
oxhp(h)=fai((ixhp(h)-b(h))/a(h));
endixjp1=0;
for j=1:j
for h=1:h
ixjp1=ixjp1+wjh(h,j)*oxhp(h);
endixjp(j)=ixjp1+b2(j);
ixjp1=0;
endfor i=1:j
oxjp(i)=fnn(ixjp(i));
endwuchayy=1/2*sumsqr(oxjp-targ);
保存每次的误差;
err_netout=[err_netout wuchayy];
求解小波网络运用bp算法,各参数每次学习的调整量。
for j=1:j
detaj(j)=-oxjp(j)-targ(j))*oxjp(j)*(1-oxjp(j));
endfor j=1:j
for h=1:h
detawjh(h,j)=eta*detaj(j)*oxhp(h);
endend
detab2=eta*detaj;
sum=0;
for h=1:h
for j=1:j
sum=detaj(j)*wjh(h,j)*diffai((ixhp(h)-b(h))/a(h))/a(h)+sum;
enddetah(h)=sum;
sum=0;
endfor h=1:h
for i=1:i
detawhi(i,h)=eta*detah(h)*x(i);
endend
detab1=eta*detah;
detab=-eta*detah;
for h=1:h
detaa(h)=-eta*detah(h)*(ixhp(h)-b(h))/a(h));
end引入动量因子aerfa,加快收敛速度和阻碍陷入局部极小值。
wjh=wjh+(1+aerfa)*detawjh;
whi=whi+(1+aerfa)*detawhi;
a=a+(1+aerfa)*detaa';
b=b+(1+aerfa)*detab';
b1=b1+(1+aerfa)*detab1';
b2=b2+(1+aerfa)*detab2';
本算法采用的是样本逐个处理而不是数据批处理。
p=p+1;
if p~=p
flag=flag+1;
elseif err_netout(end)>0.008
flag=flag+1;
elsefigure;
plot(err_netout);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('网络学习误差曲线','fontsize',20,'color',[0 1 1],'fontname','隶书');
endend
if count>6000
figure(1);
subplot(1,2,1)
plot(err_netout,'color','b','linestyle','linewidth',2.2,..
marker','markersize',3.5);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('误差曲线','fontsize',20,'color',[1 1 1],'fontname','隶书');
subplot(1,2,2)
handle1=plot(x,targ,'color','r','linestyle','linewidth',2.2,..
marker','p','markersize',3.5);
hold on
handle1=plot(x,oxjp,'color','g','linestyle','linewidth',2.2,..
'marker','d','markersize',3.5);
xlabel('样本输入值');ylabel('样本目标值与网络输出值');
title('目标值与网络输出值比较','fontsize',20,'color',[1 1 1],'fontname','隶书');
legend('样本目标值','网络**值');
break;
endend
function y3=diffai(x) %子程序。
y3=-1.75*sin(1.75*x).*exp(-x.^2/2)-cos(1.75*x).*exp(-x.^2/2).*x;
function yl=fai(x) %子程序。
yl=cos(1.75.*x).*exp(-x.^2/2);
function y2=fnn(x) %子程序。
y2=1/(1+exp(-x));
matlab作业
2011029170002王柳。a 一个问题的病态性如何,与求解它的算法有关系。错 b 无论问题是否病态,好的算法都会得到它好的近似解。错 c 计算中使用更高的精度,可以改善问题的病态性。错 d 用一个稳定的算法计算一个良态问题,一定会得到它好的近似解。对 e 浮点数在整个数轴上是均匀分布。错 f ...
matlab作业
matlab语言 第3次作业 字符串,单元数组和结构体 专业 海洋技术 海洋测绘方向 姓名 张体强学号 1026222 1 如何将一个char 数据类型的向量转化为相应的double 型数据类型的数据向量。从式1 到8,判断这些语句是否正确。如果它们正确,那么将产生什么结果?这题不要在电脑中做。1....
matlab作业
电子与通信工程学院。通信系统 实验报告。2013 2014 学年第1学期。调频 fm 系统调制解调 专业 通信工程。班级 通信111 班。学号 姓名 指导教师姓名陈多瑜。2013年 11 月日。1.频率调制或调频 fm 1 设调制信号为m t 调频信号的数学表达式为。例如 m t 的时域波形为。m ...