资源描述:
《matlab径向基神经网络函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、众所周知,BP网络用于函数逼近时,权值的调节采用的是负梯度下降法。这个调节权值的方法有局限性,即收敛慢和局部极小等。径向基函数网络(RBF)在逼近能力、分类能力和学习速度等方面均优于BP网络。Matlab中提供了四个径向基函数相关的函数,它们都是创建两层的神经网络,第一层都是径向基层,第二层是线性层或者竞争层。主要的区别是它们权值、阀值就算函数不同或者是否有阀值。注意:径向基函数网络不需要训练,在创建的时候就自动训练好了。1.net=newrbe(P,T,spread)newrbe()函数可以快速设计一个径向基函数网络,且是的设计误差为0。第一层(径向基层)神经元数目等于输
2、入向量的个数,加权输入函数为dist,网络输入函数为netprod;第二层(线性层)神经元数模有输出向量T确定,加权输入函数为dotprod,网络输入函数为netsum。两层都有阀值。第一层的权值初值为p',阀值初值为0.8326/spread,目的是使加权输入为±spread时径向基层输出为0.5,阀值的设置决定了每一个径向基神经元对输入向量产生响应的区域。2.[net,tr]=newrb(P,T,goal,spread,MN,DF)该函数和newrbe一样,只是可以自动增加网络的隐层神经元数模直到均方差满足精度或者神经元数模达到最大为止。 P=-1:0.1:1;T=si
3、n(P);spread=1;mse=0.02;net=newrb(P,T,mse,spread);t=sim(net,P);plot(P,T,'r*',P,t) 3.net=newgrnn(P,T,spread)泛回归网络(generalizedregressionneuralnetwork)广义回归网络主要用于函数逼近。它的结构完全与newbre的相同,但是有以下几点区别(没有说明的表示相同):(1)第二网络的权值初值为T(2)第二层没有阀值(3)第二层的权值输入函数为normpod,网络输入函数为netsum >>P=0:1:20;>>T=exp(P).*sin(P);
4、>>net=newgrnn(P,T,0.7);>>p=0:0.1:20;>>t=sim(net,p);>>plot(P,T,'*r',p,t) 4.net=newpnn(P,T,spread)概率神经网络(probabilisticneuralnetwork)该网络与前面三个最大的区别在于,第二层不再是线性层而是竞争层,并且竞争层没有阀值,其它同newbre,故PNN网络主要用于解决分类问题。PNN是按下面的方式进行分类的:为网络提供一输入向量后,首先,径向基层计算该输入向量同样本输入向量之间的距离
5、
6、dist
7、
8、,该层的输出为一个距离向量;竞争层接受距离向量为输入,计算每
9、个模式出现的概率,通过竞争传递函数为概率最大的元素对应输出1,否则为0。注意:由于第二层是竞争层,故输入/输出向量必须使用ind2vec/vec2ind函数进行转换,也就是将索引转换为向量或者向量转换为索引。 >>P=[12;22;11]'P= 1 2 1 2 2 1>>Tc=[123];>>T=ind2vec(Tc)T= (1,1) 1 (2,2) 1 (3,3) 1>>spread=1;>>net=newpnn(P,T,spread);>>t=sim(net,P)t= (1,1) 1
10、(2,2) 1 (3,3) 1>>tc=vec2ind(t)tc= 1 2 3%从这里可以看出gnn对P准确分类了