返回
首页>资讯

bp和rbf的区别

时间: 2023-04-11 06:20:12

bp和rbf的区别

BP网络用于函数逼近时,权值的调节采用的是负梯度下降法,这种调节权值的方法有它的局限性,既存在着收敛速度慢和局部极小等缺点。而径向基神经网络在逼近能力、分类能力和学习速度等方面均优于BO网络。从理论上讲,RBF网络和BP网络一样可近似任何的连续非线形函数,两者的主要差别在于各使用不同的作用函数,BP网络中的隐层节点使用的是Sigmoid函数,其函数值在输入空间中无限大的范围内为非零值,而RBF网络的作用函数则是局部的。

RBF神经网络和BP神经网络,matlab代码有什么区别?

clear all
clc %清除命令窗口
load Data-Ass2;
d=data';%求转置
dat=d(1:2500,1:2);
labels=d(1:2500,3);
inputNums=2; %输入层节点
outputNums=1; %输出层节点许多情况下直接用1表示
hideNums=10; %隐层节点数
maxcount=1000; %最大迭代次数
samplenum=2500; %一个计数器,无意义
precision=0.001; %预设精度
alpha=0.01; %学习率设定值
a=0.5; %BP优化算法的一个设定值,对上组训练的调整值按比例修改
error=zeros(1,maxcount+1); %error数组初始化;目的是预分配内存空间
errorp=zeros(1,samplenum); %同上
w=rand(hideNums,outputNums); %10*3;w表隐层到输出层的权值

%求聚类中心
[Idx,C]=kmeans(dat,hideNums);
%X 2500*2的数据矩阵
%K 表示将X划分为几类
%Idx 2500*1的向量,存储的是每个点的聚类标号
%C 10*2的矩阵,存储的是K个聚类质心位置

%求扩展常数
dd=zeros(1,10);
for i=1:10
dmin=10000;
for j=1:10
ddd=(C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2;
if(ddd<dmin&&i~=j)
dmin=ddd;
end
end
dd(i)=dmin;
end

%b为进行计算后隐含层的输入矩阵
b=zeros(2500,10);
for i=1:2500
for j=1:10
b(i,j)=exp( -( (dat(i,1)-C(j,1))^2+(dat(i,2)-C(j,2))^2 )/(2*dd(j)) );%dd为扩展常数
end
end
count=1;
while (count<=maxcount) %结束条件1迭代1000次

c=1;
while (c<=samplenum)%对于每个样本输入,计算输出,进行一次BP训练,samplenum为2500

%o输出的值
double o;
o=0.0;
for i=1:hideNums
o=o+b(c,i)*w(i,1);
end

%反馈/修改;
errortmp=0.0;
errortmp=errortmp+(labels(c,1)-o)^2; % 第一组训练后的误差计算
errorp(c)=0.5*errortmp;
yitao=labels(c,1)-o; %输出层误差
for i=1:hideNums%调节到每个隐藏点到输出点的权重
w(i,1)=w(i,1)+alpha*yitao*b(c,i);%权值调整
end

c=c+1; %输入下一个样本数据
end%第二个while结束;表示一次训练结束
%求最后一次迭代的误差
double tmp;
tmp=0.0; %字串8
for i=1:samplenum
tmp=tmp+errorp(i)*errorp(i);%误差求和
end
tmp=tmp/c;
error(count)=sqrt(tmp);%求迭代第count轮的误差求均方根,即精度
if (error(count)<precision)%另一个结束条件
break;
end
count=count+1;%训练次数加1
end

%测试
test=zeros(500,10);
for i=2501:3000
for j=1:10
test(i-2500,j)=exp( -( (d(i,1)-C(j,1))^2+(d(i,2)-C(j,2))^2 )/(2*dd(j)) );%dd为扩展常数
end
end

count=0;
for i=2501:3000
net=0.0;
for j=1:hideNums
net=net+test(i-2500,j)*w(j,1);
end
if( (net>0&&d(i,3)==1) || (net<=0&&d(i,3)==-1) )
count=count+1;
end
end

声明: 我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本站部分文字与图片资源来自于网络,转载是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:daokedao3713@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

猜你喜欢

本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有

邮箱:daokedao3713@qq.com

备案号:鲁ICP备2022001955号-4

网站地图