小波神经网络程序
- 格式:doc
- 大小:26.50 KB
- 文档页数:3
神经网络小波分析技术的研究神经网络小波分析技术是近年来发展迅速的一种分析技术。
它是基于小波分析的基础上,利用人工神经网络模型进行数据分析和模型建立的一种方法。
它的应用范围非常广泛,可以用于时间序列分析、图像处理、语音识别、金融风险评估等领域。
下面将从理论和应用两个方面探讨神经网络小波分析技术的研究。
一、理论研究神经网络小波分析技术是一种新的数据处理方法,它的理论基础是小波变换和人工神经网络模型。
在小波分析中,小波函数用于对信号进行分解,将信号分解成不同尺度和频率的小波系数,然后根据小波系数进行重构。
小波分析的优势在于可以同时分析信号的时域和频域信息,适用于处理具有局部特征的非平稳信号。
而在人工神经网络模型中,神经元利用类似于神经系统的方式处理信息,具有分布式处理、全局优化等优势。
神经网络小波分析技术将小波分析和神经网络模型有机地结合起来,用于数据分析和模型建立。
在神经网络小波分析中,先利用小波变换对原始数据进行分解,然后将小波系数作为输入信号传入神经网络中进行处理。
通过不断地迭代训练网络,最终获得满足误差要求的最优网络结构和权值,从而实现数据分析和模型建立。
神经网络小波分析技术在理论方面的研究主要包括网络结构的设计、学习算法的改进、模型评价等方面。
二、应用研究神经网络小波分析技术的应用范围非常广泛,可以应用于时间序列分析、图像处理、语音识别、金融风险评估等众多领域。
以下分别介绍一下神经网络小波分析技术在不同领域的应用。
1、时间序列分析时间序列分析是指对一系列按时间顺序排列的数据进行分析和预测的技术。
神经网络小波分析技术可以利用小波分解提取序列中不同频率成分,然后利用神经网络模型对时间序列进行建模和预测。
神经网络小波分析技术在金融、电力、医学等领域中都得到了广泛的应用。
2、图像处理图像处理是指对数字图像进行处理和分析的技术。
神经网络小波分析技术可用于数字图像压缩、边缘检测、纹理分析等方面。
利用小波变换可以提取图像中的局部特征,利用神经网络模型可以对图像进行分类识别,实现图像处理和分析。
1996年 第5期中山大学学报论丛SUPP LEM EN T TO T HE JOU RN ALOF SUN YATSEN UNIV ERSI TYNo.5 1996 小波型神经网络W TNN的设计毛光喜郑咸义(广东商学院计算中心,广州510320) (华南理工大学应用数学系)摘 要 小波分析已成为众多领域中的有力工具.本文采用调制的小波基对输入模式预处理,在函数链神经网络的基础上设计了小波型神经网络W TNN,从而把小波变换与函数链神经网络有机地结合起来.这样设计的模型有惊人的学习速度;体系结构的通用性好;适应性强等特点.最后,通过实例用计算机模拟验证上述特点.关键词 小波变换,函数链神经网络,W TNN,软件模拟1 引 言1.1 小波分析 简言之,小波是由一个满足条件 Rh(x)dx=0(1)的函数(mother wavelet)通过平移和放缩而产生的一个函数族h a,b:h a,b(x)=|a|-1/2h((x-b)/a),a,b∈R,a≠0(2) 小波分析(Wavelets a nalysis)可以认为是Fourier分析发展史上里程碑式的进展.小波分析优于Fourier分析的地方在于它在时域和频域同时具有良好的局部化性质,从而可以把分析的重点聚焦到任意的细节,被人们誉为数学显微镜,成为近年来在工具和方法上的重大突破.从理论上讲,传统上使用Fourier分析的地方,均可以用小波分析来代替.小波几乎可以构成所有常用函数空间的无条件基.因此,我们把小波变换应用到函数链神经网络中,构造了一个新的模型W TNN——小波型神经网络.1.2 函数链神经网络函数链神经网络是对输入模式作非线性变换预处理、利用高阶效应而获得惊人学习速度的单层网络[1].它的基本思想是:一旦一节点被激励,例如k节点被激励,就会有许多附加函数功能也被激励,即不仅能得到O k,而且还能得到f1(O k),f2(O k),…,f n(O k).如图1所示.函数链神经网络的理论基础是Sobajic于1988年奠定的[2],他证明了函数展开模型总能产生一个单层网络,而且在他的理论分析指导下,可以得到形式简单的解.函数链神经网络的不足之处在于,该系统的适应性较差,该系统总是就具体问题而必须事先设计好一组恰国家自然科学基金资助项目收稿日期63:199-0-20当的函数型增强表达式f 1,f 2,…,f n .换句话说,该系统不能自动地获取对输入模式“好”的增强表达,这种“好”的增强表达是指输入模式的增强表达有利于网络的学习.因此,函数链神经网络的应用受到了限制.图1 函数链神经网络2 W TNN 的构造2.1 引入两个工具2.1.1 小波正交基库 这个库是由足够多的小波正交基以及其它许多正交基所组成的基函数集合,集合中的元素均为一组组基函数.2.1.2 选择“好”基的标准 对于原始输入模式,在小波正交基库中按此标准选择一个“好”基,从而对输入模式进行增强表达,即由O k 得到f 1(O k ),f 2(O k ),…,f n (O k ).Wickerharuse 与Coifman 引进了Shannon 熵的概念作为挑选基的标准[3].定义如下:定义 设H 是Hilbert 空间,令v ∈H ,‖v ‖=1,又假设H=⊕Hi 是H 的一个正交直和,则X (v ,{Hi })=(-∑‖v i ‖2ln ‖v i ‖2)1/2(3)称为向量V 关于直和分解{Hi}的Shannon 熵.其中{v i }是v 在此基{Hi}下的坐标.按照使Shannon 熵为最小的标准来挑选“最好”的基,用以展开H 中的元素.2.2 W TNN 模型的构造小波型神经网络W TNN 模型的结构如图2所示.图2 W TNN 模型的结构2.2.1 小波正交基库 也称为正交基馆或函数馆.例如,Coifman 及其合作者就构作了这样的一个正交基馆,其中收藏了大量的小波正交基以及其它许多正交基.2.2.2 调制器 也称为选基器或排基器.其功能是对给定的原始输入模式,在小波正交基库中调制出一个“最好”的基.从而按这个基对输入模式增强表达,进而作为神经网络的输入用于神经网络的训练控制机制是由选基标准实现的例如,我们按照使S 熵为最小的标准来设计调制器3 单层神经网络 网络学习算法采用最简单的W 规则①任取一组随机数初始化数值172中山大学学报论丛 1996年..hannon .2.2.:向量w 1;②对第k 次递归,有w k +1=w k +Z(b k -w f k x k )X k ,其中Z 称为学习年(0<Z <0.5).省去脚标,②式记为Δw=Z W X ,其中,W =b-w fX 为误差.2.2.4 目标系统 存放着具体目标的领域专家的知识.这些知识是粗糙零散的,以输入—输出关联对的形式表达.2.2.5 用户界面 W TNN 网络系统与用户(例如,领域专家)之间的接口,一般它包括输入/输出两大部分.2.3 W TNN 的工作原理(1)根据实际目标的领域专家的以输入—输出关联对形式表达的知识,确定目标系统.(2)从目标系统的传感器取得数据V (即原始输入模式)通过用户界面输入到小波正交基库中,从而对基库中每一个基元{Hi (k )}n i =1,V 都有其坐标展开,即V =∑ni=1V i (k)H i (k ).其中k 为基元素在库内的编号,V i (k )是第i 个坐标分量.(3)调制器在小波正交基库中取得各组{V i (k)}ni=1,根据选基标准,求出一组最优的坐标{V i (k 0)}n i=1,从而调制出一个“最好”的基{H i (k 0)}ni =1.(4)用{H k (k 0)(V )}对单层神经网络进行训练,以提高目标系统的准确性.3 W TNN 的特点W TNN 不仅完全继承了函数链神经网络的优点,而且还具有更强的功能.它有特点:(1)适应性强.WTNN 网络系统中的调制器子系统能自动调制小波基,实现对输入模式按有利于网络训练的方式增强表达.因此,W TNN 的适应性很强,弥补了函数链神经网络的不足.(2)小波变换与神经网络的有机结合.W TNN 网络模型采用小波变换对原始输入模式预处理,通过自动调制有利于网络训练的小波基,实现了小波变换与神经网络的成功结合.(3)继承了函数链神经网络的全部优点,模型结构简单,功能更加强大,网络对学习算法的依赖性很低,体系结构的通用性好.4 实例分析通过两个例子,在微机上运行了W TNN 模拟程序和相应的BP 网络模拟程序.通过对比,证实了WTNN 具有快速学习速度,进一步以函数链神经网络对比,显示了W TNN 网络系统具有很强的适应性.例1 二值异域问题在二值异域XOR 问题中,输入—输出关联对如表1所示.表2显示了系统误差随迭代次数下降的情况.表1 XOR 问题学习模式模式序号x 1x 2关联输出Y100120103173第5期 毛光喜等:小波型神经网络W TNN 的设计1004111表2 学习结果对比迭代次数W TNN 网络系统误差BP 网络系统误差500.050.86251000.002510.8551500.001260.852000.010.8252500.008750.7迭代次数W TNN 网络系统误差BP 网络系统误差3000.00750.553500.006250.34000.0050.054500.003750.0055000.00250.003例2 一元函数的学习向网络提供曲线的20个采样点,表3是输入—输出关联对,表4显示了系统误差随迭代次数下降的情况.表3 学习模式自变量x i函数值y i 自变量x i函数值y i 0.10.24350.60.24350.20.16750.70.75010.30.45490.80.11500.40.45490.90.66190.50.66191.00.0697自变量x i函数值y i 自变量x i函数值y i 1.10.3312 1.60.04111.20.5719 1.70.17181.30.4910 1.80.26521.40.4512 1.90.03321.50.01322.00.1177表4 学习结果对比迭代次数W TNN 网络系统误差BP 网络系统误差5000.0076920.23076910000.0007690.03076915000.0003850.023*******×0.019231迭代次数W TNN 网络系统误差BP 网络系统误差2500×0.0153853000×0.0076923500×0.0038464000××本文构造的W TNN 网络模型,只是初步探讨了小波变换与神经网络的结合.实际上,小波型神经网络W TNN 还需做更深入的研究.例如,神经网络与模糊系统的集成技术已引起了人们的普遍关注;遗传算法作为一种随机搜索的全局优化算法,它在模糊规则的自动获取与神经网络的学习过程中扮演了一个十分令人注目的角色.因此,探讨将W TNN 、遗传算法及模糊系统进行有机结合,将是我们进一步研究工作的重大课题.参考文献1 Klassen M S,Pao Y H .Cha racte ristics of the functional-link net :A higher order delta r ule net.IEEE Proc .of 2nd Aunua l Inte rnationa l Confe rence on Nea ral Networ ks ,1988,I ,507~513 S j D N N f f Sy ,D T ,S D ,W K U y ,,3 f R,W M V y f ,3174中山大学学报论丛 1996年2oba ic .ewral ets or Control o Power stems Ph ..h esis Computer cience ept Case este rn eserve niversit Cleveland 1988Coi ma n ickerha user .Eutrop -based a lgorithms or best basis selection.19928I EEE Tr ans.27,713~7184 周继成等编著.人工神经网络——第六代计算机的实现.北京:科学普及出版社,19935 庄镇泉,王煦法等编著.神经网络与神经计算机.北京:科学出版社,1994Wa velets Neura l Network Mode l -WTNN ’sDes ign a nd Rea liza tion Mao Guangxi Zheng Xianyi(Gua ngdong Commercia l College Com puter Center,Guangzhou 510320) (South China Univer sity ofTech Math D ept,)Abstr act Wavelets a nalysis have become powerful tools in lots of fields.This paper takes modulation wave-lets coordinate to pre-transform the lear n ing specimen.On the basis ofthe functional -link nevral network ,we design the wavelets neural network model -W TNN and combine wavelets transform with the functional-link neural network successfully .This new model has distinguishing feature as following :(1)surprising learning speed;(2)commonly used structure in erea of neural networks ;(3)strong adaptability .Lastly ,we give some examples to prove WTNN model has distinguishing learning speed .Keywor ds Wavelets transforms,W TNN ,functional-link neural network,softwa re imitative175第5期 毛光喜等:小波型神经网络W TNN 的设计。
⼩波神经⽹络(WNN)⼈⼯神经⽹络(ANN)是对⼈脑若⼲基本特性通过数学⽅法进⾏的抽象和模拟,是⼀种模仿⼈脑结构及其功能的⾮线性信息处理系统。
具有较强的⾮线性逼近功能和⾃学习、⾃适应、并⾏处理的特点,具有良好的容错能⼒。
⼈⼯神经元神经元是构成神经⽹络的最基本单元。
要想构造⼀个⼈⼯神经⽹络系统,⾸要任务是构造⼈⼯神经元模型。
⼀个⼈⼯神经⽹络的神经元模型和结构描述了⼀个⽹络如何将它的输⼊⽮量转换为输出⽮量的过程。
⼀个神经元有两个输⼊:输⼊向量p,阈值b,也叫偏差。
输⼊向量p通过与它相连的权值分量w相乘,求和后,形成激活函数f(.)的输⼊。
激活函数的另⼀个输⼊是神经元的阈值b。
权值w和输⼊p的矩阵形式可以由w的⾏⽮量以及p的列⽮量来表⽰:神经元模型的输出⽮量可以表⽰为:激活函数是⼀个神经元及⽹络的核⼼。
激活函数的基本作⽤是:1、控制输⼊对输出的激活作⽤;2、对输⼊、输出进⾏函数转换;3、将可能⽆限域的输⼊变换成指定的有限范围内的输出。
激活函数的常⽤类型:⼩波(wave/let):波-震荡,⼩-衰减速度⽐较快。
⼩波分析具有多分辨分析的特点,是⼀种窗⼝⼤⼩固定不变但其形状可以改变的分析⽅法,被称为信号的显微镜。
⼩波分析的种类:Haar⼩波规范正交基、Morlet⼩波、Mallat算法、多分辨分析、多尺度分析、紧⽀撑⼩波基、时频分析等。
⼩波神经⽹络(WNN)集⼈⼯神经⽹络和⼩波分析优点于⼀⾝,即使⽹络收敛速度快、避免陷⼊局部最优,⼜有时频局部分析的特点。
WNN是将神经⽹络隐结点的S函数由⼩波函数来代替,相应的输⼊层到隐含层的权值及隐含层的阈值分别由⼩波函数的尺度伸缩因⼦和时间平移因⼦所代替。
小波分析小波变换的基本原理离散小波变换z通过小波变换对某给定的信号进行分解,对信号小波包分解•小波包分解:不仅对信号的低频分量连续进行分解,而且对高频分量也进行连续分解,这样不仅可得到许多分辨率较低的低频分量,而且也可得到许多分辨率较低的高频分量.•对信号在整个频域范围内分解,不仅提高低频部分的频域分辨率,而且可提高高频部分的频域分辨率。
•小波包分解示意图采用小波包分解可以将原始信号分解到相邻的不同频率段上,并且可以用重构算法,提取某一频率段信号加以重构。
三级小波包分解树1332S A AAD DAD DD=+++33333333+ADAS AAA DAA DDA AAD DAD ADD DDD =++++++频域分析方法比较:–傅立叶分析小波分析具体步骤•小波分析技术在时域和频域均具有局部分析功能,所以适合•②确定小波基的阶数小波变换问题所在例:对白噪声信号noissin进行3层小波分解,所用小波函数为‘db4’。
load noissin; 读入白噪声信号s=noissin(1:1000); 取信号的前1000个采样点[c,l]=wavedec(s,3,’db4’); 对信号做3层多尺度分解[cd1,cd2,cd3]=detcoef(c,l,[1,2,3]);[cd1,cd2,cd3]detcoef(c,l,[1,2,3]);得到三个尺度的细节系数ca3=appcoef(c,l,’db4’,3); 得到尺度3的近似系数figure;subplot(511);plot(1:1000,s);title(‘s’); 绘制原始信号subplot(512);plot(ca3);title(‘ca3’); 绘制尺度3的近似系数subplot(513);plot(cd3);title(‘cd3’); 绘制尺度3的细节系数subplot(514);plot(cd2);title('cd2'); 绘制尺度2的细节系数subplot(515);plot(cd1);title('cd1'); 绘制尺度1的细节系数中,各层分解后的长度存到数组l中;[nc,nl]=upwlev(c,l,‘sym1’);通过第四层小波系数重建第三层小波近似系数,把三层的系数存放在数组nc中,三层分解的长度存放到数组nl中figure;subplot(311);plot(s);title(‘原始信号’); 绘制原始信号subplot(312);p();plot(c);title('做4层wavedec得到的结果');subplot(313);plot(nc);title('做3层wavedec得到的结果');lev=5;lev5;[c,l]=wavedec(x,lev,wname); 用sym6小波对信号x做5层分解sigma=wnoisest(c,l,1); 通过第1层的细节系数估算信号的噪声强度σ;alpha=2; 选择参数α=2thr1=wbmpen(c,l,sigma,alpha); %使用penalty策略确定降噪的阈值xd1=wdencmp(‘gbl’,c,l,wname,lev,thr1,’s’,1);%重建降噪信figure;subplot(411);plot(x);title(‘原始信号’);subplot(412);plot(xd1);title(‘使用penalty阈值降噪后信号’);小波工具箱的在前面的介绍中,都是用命令行的方式来利用小波工具箱菜单提供如下的功能:一维小波分析工具类,包括:一维小波变换、一维小波包变换等。
小波变换与神经网络的结合在图像分析中的应用随着科技的不断发展,数字化技术在图像处理中的应用越来越广泛。
在图像分析领域中,小波变换和神经网络是两个重要的工具,它们可以互相结合,最终帮助人们更好地进行图像分析。
本文将探讨小波变换和神经网络的结合在图像分析中的应用。
一、小波变换的介绍小波变换是一种基于时间和频率分析的变换方法,它可以将信号分解为不同频率成分和时域特征。
相比于傅里叶变换,小波变换更适合处理非稳态信号,可以提取出更为准确的信息。
在图像分析中,小波变换可以用于图像压缩、去噪、边缘检测等方面。
通过分解和重构,小波变换可以将图像压缩到更小的尺寸,同时保留图像的主要信息。
此外,小波变换可以减少噪声在图像中的影响,提高图像的质量。
在边缘检测方面,小波变换可以定位图像中的边缘,并将其突出显示。
二、神经网络的介绍神经网络是一种基于生物神经系统的模拟技术,它通过多个节点(神经元)之间的连接,来实现信息的处理。
神经网络可以设置多个隐藏层,根据数据集不断进行学习,提高其对目标的识别准确性。
在图像分析中,神经网络可以用于图像识别、物体检测等方面。
通过对大量数据的学习,神经网络可以判断图像中是否存在目标物体,并将其与其他物体区分开来。
此外,神经网络还可以对图像进行分类,例如将不同的动物、车辆等分类出来。
三、小波变换与神经网络的结合小波变换和神经网络在图像分析中都有重要的作用,它们的结合可以更全面地分析图像。
以下是小波变换与神经网络结合的一些应用。
1. 基于小波变换的图像预处理在使用神经网络进行图像分析之前,需要对图像进行预处理。
由于神经网络对噪声、模糊等干扰比较敏感,因此需要使用小波变换来对图像进行去噪、边缘检测等处理,以提高神经网络的准确性。
2. 基于小波变换的神经网络训练方法神经网络的识别准确性与其所学习的数据集的质量有关。
在训练神经网络时,可以采用小波变换来对数据集进行压缩,从而减少神经网络的训练时间和计算量,提高训练效率。
一种深度小波过程神经网络及在时变信号分类中的应用深度小波过程神经网络(Deep wavelet process neural network,DWPN)是一种结合了深度学习和小波变换的新型神经网络模型。
它能够有效地处理信号的时变特性,适用于时变信号分类、预测等任务。
本文将介绍DWPN的结构和工作原理,并探讨其在时变信号分类中的应用。
一、深度小波过程神经网络(DWPN)的结构和工作原理DWPN是一种深度神经网络模型,其核心是小波变换(wavelet transform)和神经网络(neural network)的结合。
小波变换是一种信号处理技术,能够将信号分解为不同频率的子信号,从而实现对信号时频特性的分析。
神经网络是一种模仿人脑神经元网络的计算模型,能够通过学习和训练实现对复杂模式的识别和分类。
DWPN的结构包括多个小波过程层和多个神经网络层,其中小波过程层用于对输入信号进行小波变换和特征提取,神经网络层用于对提取的特征进行分类和预测。
在训练阶段,DWPN通过反向传播算法和梯度下降方法对网络参数进行优化,从而实现对时变信号的分类和预测任务。
二、DWPN在时变信号分类中的应用1. 生物医学信号分类生物医学信号如心电图、脑电图等是一种典型的时变信号,其特征随着时间的变化而变化。
DWPN能够通过学习和训练实现对生物医学信号的自动分类,如心律失常检测、睡眠阶段识别等任务。
2. 金融时间序列预测金融市场的时间序列数据具有复杂的非线性和时变性质,传统的数学模型往往难以准确预测未来的走势。
DWPN能够通过学习历史数据的特征和规律,实现对金融时间序列的预测和分类,如股票价格走势预测、市场波动风险评估等任务。
4. 传感器信号分类传感器网络中产生的信号具有时变的特性,如温度、湿度、压力等信号。
DWPN能够通过学习和训练实现对传感器信号的分类和异常检测,如工业生产过程监测、环境监测等任务。
结语深度小波过程神经网络(DWPN)是一种结合了深度学习和小波变换的新型神经网络模型,能够有效处理信号的时变特性,适用于时变信号分类、预测等任务。
小波变换与神经网络的结合及其应用近年来,随着人工智能技术的快速发展,小波变换和神经网络被广泛应用于各个领域。
小波变换是一种数学工具,可以将信号分解成不同频率的成分,而神经网络则是一种模拟大脑神经元网络的计算模型,可以学习和处理复杂的非线性问题。
将小波变换和神经网络相结合,可以充分发挥两者的优势,提高数据处理和分析的效率。
首先,小波变换和神经网络的结合在信号处理领域有着广泛的应用。
传统的信号处理方法往往需要依靠专家经验来选择合适的滤波器和特征提取方法,而小波变换可以根据信号的特点自适应地选择合适的小波基函数,从而更好地捕捉信号的特征。
而神经网络则可以通过学习大量的样本数据,自动地学习信号的特征表示,进一步提高信号处理的准确性和鲁棒性。
例如,在语音识别任务中,可以利用小波变换将语音信号分解成不同频率的子带,然后使用神经网络对每个子带进行分类和识别,从而提高语音识别的准确率。
其次,小波变换和神经网络的结合在图像处理领域也有着广泛的应用。
图像是一种二维信号,小波变换可以将图像分解成不同尺度和方向的子带,从而提取图像的局部特征。
而神经网络可以通过学习大量的图像数据,自动地学习图像的特征表示和分类器,进一步提高图像处理的效果。
例如,在人脸识别任务中,可以利用小波变换将人脸图像分解成不同频率的子带,然后使用神经网络对每个子带进行特征提取和分类,从而提高人脸识别的准确率和鲁棒性。
此外,小波变换和神经网络的结合还在金融领域、医学领域等其他领域得到了广泛应用。
在金融领域,可以利用小波变换将股票价格序列分解成不同频率的子带,然后使用神经网络对每个子带进行预测和交易决策,从而提高金融交易的效率和收益。
在医学领域,可以利用小波变换将心电图信号分解成不同频率的子带,然后使用神经网络对每个子带进行异常检测和疾病诊断,从而提高医学诊断的准确性和效率。
综上所述,小波变换和神经网络的结合在各个领域都有着广泛的应用。
通过充分发挥两者的优势,可以提高数据处理和分析的效率,进一步推动人工智能技术的发展。
这是一个小波神经网络程序,作者judyever
%参考<青岛海洋大学学报> 2001年第1期一种基于BP算法学习的小波神经网络%% %step1--------网络初始化-------------------------------------------
clc;
clear all;
%设定期望的误差最小值
err_goal=0.001;
%设定最大循环次数
max_epoch=50;
%设定修正权值的学习速率0.01-0.7
lr=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;%隐形节点的个数
%这个地方需要改进,由于实际上隐形节点的个数可以通过小波的时频分析确定
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:N
for j=1:1:n
for k=1:1:M
net(j)=net(j)+Wjk(j,k)*x(k);
net_ab(j)=(net(j)-b(j))/a(j);
end
y(i)=y(i)+Wij(i,j)*mymorlet(net_ab(j));
%mymorlet是judyever编写的小波函数,以后可以扩展成输入不同的小波名字即可
% y(i)=mysigmoid(2,y(i));
end
end
% plot(x,d,'r',x,y);
% title('训练前的目标序列和实际输出序列');
err=d-y;
SSE=err*err';
%step3--------调整各个参数-------------------------------------------
while (SSE>err_goal & epoch<max_epoch)
d_Wjk=zeros(n,M);
d_Wij=zeros(N,n);
d_a=zeros(1,n);
d_b=zeros(1,n);
for i=1:1:N
for j=1:1:n
d_Wij(i,j)=-(d(i)-y(i))*mymorlet(net_ab(j));
%调整d_Wij(i,j)
for k=1:1:M
d_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)*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)
end
end
%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);%隐形节点初始化
for i=1:1:N
for j=1:1:n
for k=1:1:M
net(j)=net(j)+Wjk(j,k)*x(k);
net_ab(j)=(net(j)-b(j))/a(j);
end
y(i)=y(i)+Wij(i,j)*mymorlet(net_ab(j));
%mymorlet是judyever编写的小波函数,以后可以扩展成输入不同的小波名字即可% y(i)=mysigmoid(2,y(i));
end
end
epoch=epoch+1;
err=d-y;
SSE=err*err'/M;
[ epoch SSE]
end
%step5--------输出-------------------------------------------
plot(x,d,'r',x,y,':');
title('训练后的目标序列和实际输出序列');
% 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); %%%%%%%%%%%%%%%%%%%%%%555
function y=d_mymorlet(t)
y = -1.75*sin(1.75*t).*exp(-(t.^2)/2)-t* cos(1.75*t).*exp(-(t.^2)/2) ;。