请选择 进入手机版 | 继续访问电脑版
楼主: fantuanxiaot
13378 35

[源码分享] 原创,基于径向基函数(RBF)神经网络RBF网络的举例应用! [推广有奖]

Ψ▄┳一大卫卍卐席尔瓦

大师

8%

还不是VIP/贵宾

-

威望
7
论坛币
-234475 个
通用积分
124.0224
学术水平
3783 点
热心指数
3819 点
信用等级
3454 点
经验
150207 点
帖子
7546
精华
32
在线时间
1327 小时
注册时间
2013-2-3
最后登录
2022-2-24

初级学术勋章 初级热心勋章 中级热心勋章 中级学术勋章 初级信用勋章 中级信用勋章 高级热心勋章 高级学术勋章 特级学术勋章 特级热心勋章 高级信用勋章 特级信用勋章

fantuanxiaot 发表于 2014-11-7 12:14:59 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
        如若有错,大神多多指教 。  
         MATLAB已经有良好的RBF神经网络建模函数Newrbe,为了能够深刻的了解RBF神经网络的内部结构,编出了较为简单的RBF神经网络训练函数举例,代码如下。
  1. function RBF_NN_Example()
  2. clc
  3. clear all
  4. %  创建训练样本
  5. %  线性函数的训练
  6. Mn_Train=100*[rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5;...
  7.     rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5];
  8. n=size(Mn_Train,2);
  9. %  Mn_Train 为2*20的矩阵
  10. Nn_Train=[2*Mn_Train;3*Mn_Train(1,:)];
  11. %  Nn_Train 为3*20的矩阵
  12. %  将训练样本进行聚类分析,分为4类
  13. H=4;
  14. %  将样本归一化
  15. [SampleX,pmin,pmax,SampleY,tmin,tmax]=premnmx(Mn_Train,Nn_Train);
  16. %  将训练样本进行聚类并形成聚类中心
  17. options=statset('Display','final');
  18. [index,center]=kmeans(SampleX',H,'Distance','city',...
  19.     'Replicates',10,'Options',options);
  20. figure(1)
  21. X=SampleX';
  22. set(figure(1),'color','w')
  23. hold on
  24. plot(X(index==1,1),X(index==1,2),'ro','markersize',9,'markeredgecolor',...
  25.     'k','markerfacecolor','r')
  26. plot(X(index==2,1),X(index==2,2),'go','markersize',9,'markeredgecolor',...
  27.     'k','markerfacecolor','g')
  28. plot(X(index==3,1),X(index==3,2),'mo','markersize',9,'markeredgecolor',...
  29.     'k','markerfacecolor','m')
  30. plot(X(index==4,1),X(index==4,2),'bo','markersize',9,'markeredgecolor',...
  31.     'k','markerfacecolor','b')
  32. plot(center(:,1),center(:,2),'ko','markersize',15,'markeredgecolor',...
  33.     'k','markerfacecolor','k')
  34. title('样本聚类','fontsize',16)
  35. grid on
  36. hold off
  37. %  spread径函数的扩展速度设置
  38. spread=0.3;
  39. %  基于高斯函数的隐藏层神经元的输出
  40. %  形成4*20的矩阵
  41. %  阈值
  42. b=ones(1,H)*0.8326/spread;
  43. center=center';
  44. Hidden_Out=zeros(H,size(SampleX,2));
  45. for i=1:H
  46.     for j=1:size(SampleX,2)
  47.         Hidden_Out(i,j)=exp(-b(i)*(norm(SampleX(:,j)-center(:,i)).^2));
  48.     end
  49. end

  50. %  对输出层权重的训练,最速下降法
  51. MaxIteration=1000;
  52. Iteration=0;
  53. tol=1e-3;
  54. lemda=0.001;
  55. %  初始化参数和阈值
  56. N=size(SampleY,1);
  57. W=0.5*rand(N,H)-0.1;
  58. B=0.5*rand(N,1)-0.1;
  59. %  网络输出值
  60. NetOut=W*Hidden_Out+repmat(B,1,n);
  61. Resid=SampleY-NetOut;
  62. %  均方误
  63. MSE_error=sumsqr(Resid)./(N*n);

  64. %  训练权重开始
  65. while Iteration<MaxIteration
  66.    
  67.     NetOut=W*Hidden_Out+repmat(B,1,n);
  68.     Resid=SampleY-NetOut;
  69.     MSE_error=sumsqr(Resid)./(N*n);
  70.    
  71.     Delta=Resid;
  72.     %  最速下降训练
  73.     dW=Delta*Hidden_Out';
  74.     dB=Delta*ones(n,1);
  75.    
  76.     W=W+lemda*dW;
  77.     B=B+lemda*dB;
  78.    
  79.     if MSE_error<tol
  80.         break;
  81.     end
  82.     Iteration=Iteration+1;
  83. end
  84. NetOut=W*Hidden_Out+repmat(B,1,n);
  85. Samplefit=postmnmx(NetOut,tmin,tmax);
  86. %  将拟合样本和原样本比较
  87. figure(2)
  88. set(figure(2),'color','w')
  89. hold on
  90. subplot(3,1,1)
  91. hold on
  92. plot(1:20,Nn_Train(1,:),'ro-','markersize',8)
  93. plot(1:20,Samplefit(1,:),'bo-','markersize',8)
  94. title('样本拟合对比')
  95. subplot(3,1,2)
  96. hold on
  97. plot(1:20,Nn_Train(2,:),'ro-','markersize',8)
  98. plot(1:20,Samplefit(2,:),'bo-','markersize',8)
  99. title('样本拟合对比')
  100. subplot(3,1,3)
  101. hold on
  102. plot(1:20,Nn_Train(3,:),'ro-','markersize',8)
  103. plot(1:20,Samplefit(3,:),'bo-','markersize',8)
  104. title('样本拟合对比')
  105. hold off
复制代码
模型拟合程度如下:

2.jpg


1.jpg

    如果不聚类,则样本内得到权重和阈值,代码如下:


  1. function RBF_NN_ExampleI()
  2. clc
  3. clear all
  4. %  如果将每一个样本视为一个类别
  5. %  创建训练样本
  6. %  线性函数的训练
  7. Mn_Train=100*[rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5;...
  8.     rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5];
  9. n=size(Mn_Train,2);
  10. %  Mn_Train 为2*20的矩阵
  11. Nn_Train=[2*Mn_Train;3*Mn_Train(1,:)];
  12. %  Nn_Train 为3*20的矩阵
  13. %  将样本归一化
  14. [SampleX,pmin,pmax,SampleY,tmin,tmax]=premnmx(Mn_Train,Nn_Train);
  15. %  spread径函数的扩展速度设置
  16. spread=0.3;
  17. %  基于高斯函数的隐藏层神经元的输出
  18. b=ones(1,n)*0.8326/spread;
  19. Hidden_Out=zeros(n);
  20. for i=1:n
  21.     for j=1:n
  22.         Hidden_Out(i,j)=exp(-b(i)*(norm(SampleX(:,j)-SampleX(:,i)).^2));
  23.     end
  24. end
  25. %  计算隐藏层到输出层的权重和阈值
  26. T=SampleY;
  27. AI=[Hidden_Out;ones(1,n)];
  28. T=T';
  29. AI=AI';
  30. W1=(inv(AI'*AI)*AI'*T)';
  31. %  权重的计算
  32. W=W1(:,1:n);
  33. %  阈值的计算
  34. B=W1(:,n+1);
  35. %  样本外预测
  36. X=(100*rand(20,2))';
  37. %  希望得到的预测值
  38. Y=[2*X;3*X(1,:)];
  39. %  基于RBF的预测
  40. [SampleX1,pmin1,pmax1,SampleY1,tmin1,tmin2]=premnmx(X,Y);
  41. spread=0.2;
  42. b=ones(1,size(X,2))*0.8326/spread;
  43. Hidden_Out1=zeros(size(X,2));
  44. for i=1:size(X,2)
  45.     for j=1:size(X,2)
  46.         Hidden_Out1(i,j)=exp(-b(i)*(norm(SampleX1(:,j)-SampleX1(:,i)).^2));
  47.     end
  48. end
  49. Net_Out=W*Hidden_Out1+repmat(B,1,size(X,2));
  50. Samplefit=postmnmx(Net_Out,tmin1,tmin2);
  51. %  将拟合样本和样本外比较
  52. figure(2)
  53. set(figure(2),'color','w')
  54. hold on
  55. subplot(3,1,1)
  56. hold on
  57. plot(1:20,Y(1,:),'ro-','markersize',8)
  58. plot(1:20,Samplefit(1,:),'bo-','markersize',8)
  59. title('样本外的拟合对比')
  60. subplot(3,1,2)
  61. hold on
  62. plot(1:20,Y(2,:),'ro-','markersize',8)
  63. plot(1:20,Samplefit(2,:),'bo-','markersize',8)
  64. title('样本外的拟合对比')
  65. subplot(3,1,3)
  66. hold on
  67. plot(1:20,Y(3,:),'ro-','markersize',8)
  68. plot(1:20,Samplefit(3,:),'bo-','markersize',8)
  69. title('样本外的拟合对比')
  70. hold off
复制代码

则样本外的拟合如下:


3.jpg

4.jpg










二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:神经网络 RBF 神经网 iteration replicate 模式识别 网络 能力 信息

回帖推荐

dst1213 发表于35楼  查看完整内容

支持原创,谢谢分享

长线小白龙 发表于34楼  查看完整内容

十分感谢楼主,楼主辛苦了。。。。。

1570940450 发表于29楼  查看完整内容

谢谢楼主,希望以后多多分享好的idea.

hms2006 发表于24楼  查看完整内容

多谢多谢,学习了!

ltfdick1994 发表于22楼  查看完整内容

thx for sharing

晏几道 发表于13楼  查看完整内容

好资料啊

宁静的城np 发表于12楼  查看完整内容

lz棒棒的啊。。

ruihuizhou 发表于9楼  查看完整内容

非常感谢您的分享

LIXUANHANK 发表于7楼  查看完整内容

多谢分享!!!

gssdzc 发表于6楼  查看完整内容

非常感谢分享
已有 9 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
宁静的城np + 100 + 1 + 1 + 1 精彩帖子
狂热的爱好者 + 100 + 5 + 5 精彩帖子
LIXUANHANK + 3 + 3 + 3 精彩帖子
jephy + 5 + 3 + 3 + 3 热心帮助其他会员
离歌レ笑 + 100 + 5 + 5 + 5 精彩帖子
zbin7451f + 100 + 5 + 5 + 5 对论坛有贡献
faruto + 5 + 5 + 5 精彩帖子
yangyuzhou + 100 + 5 + 5 + 5 原创
sxghp + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 500  论坛币 + 105  学术水平 + 37  热心指数 + 32  信用等级 + 37   查看全部评分

本帖被以下文库推荐

fantuanxiaot 发表于 2014-11-7 12:19:46 |显示全部楼层 |坛友微信交流群
学习《智能算法30个案例分析中》,感谢matlabsky
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
zbin7451f + 100 + 5 + 5 + 5 对论坛有贡献

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

sxghp 发表于 2014-11-7 13:01:14 |显示全部楼层 |坛友微信交流群
要向你学习哦,那本书论坛里有?
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
fantuanxiaot + 2 + 2 + 2 + 2 精彩帖子

总评分: 论坛币 + 2  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

fantuanxiaot 发表于 2014-11-7 13:27:27 |显示全部楼层 |坛友微信交流群
sxghp 发表于 2014-11-7 13:01
要向你学习哦,那本书论坛里有?
下载http://www.minxue.net/36/n-69636.html
代码http://zhidao.baidu.com/share/147c16affb527dc1af87bafdcb79a1e2.html
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
zbin7451f + 100 + 5 + 5 + 5 对论坛有贡献

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

zbin7451f 发表于 2014-11-7 14:59:44 |显示全部楼层 |坛友微信交流群
fantuanxiaot 发表于 2014-11-7 13:27
下载http://www.minxue.net/36/n-69636.html
代码http://zhidao.baidu.com/share/147c16affb527dc1af87b ...
楼主一直在论坛无私奉献!
已有 1 人评分经验 论坛币 收起 理由
fantuanxiaot + 8 + 8 鼓励积极发帖讨论

总评分: 经验 + 8  论坛币 + 8   查看全部评分

使用道具

gssdzc 在职认证  发表于 2014-11-7 18:39:58 |显示全部楼层 |坛友微信交流群
非常感谢分享
已有 1 人评分经验 论坛币 收起 理由
fantuanxiaot + 5 + 5 鼓励积极发帖讨论

总评分: 经验 + 5  论坛币 + 5   查看全部评分

使用道具

LIXUANHANK 学生认证  发表于 2014-11-7 21:53:10 |显示全部楼层 |坛友微信交流群
多谢分享!!!
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
fantuanxiaot + 1 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 1  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

榄外人L 发表于 2014-11-7 22:49:52 |显示全部楼层 |坛友微信交流群
谢谢分享,什么时候分享个学习经验
已有 1 人评分经验 论坛币 收起 理由
fantuanxiaot + 2 + 2 鼓励积极发帖讨论

总评分: 经验 + 2  论坛币 + 2   查看全部评分

使用道具

ruihuizhou 发表于 2014-11-7 22:50:12 |显示全部楼层 |坛友微信交流群
非常感谢您的分享
已有 1 人评分经验 论坛币 收起 理由
fantuanxiaot + 3 + 3 鼓励积极发帖讨论

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

fantuanxiaot 发表于 2014-11-7 22:54:19 |显示全部楼层 |坛友微信交流群
榄外人L 发表于 2014-11-7 22:49
谢谢分享,什么时候分享个学习经验
拿着书 自己先看懂代码 在自己把书上的代码 一个一个打进mfile 不要偷懒  然后再想想能不能改进
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
zbin7451f + 100 + 5 + 5 + 5 分析的有道理

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-18 11:51