python rbf神经网络_原创,基于径向基函数(RBF)神经网络RBF网络的举例应用!
function RBF_NN_Example()
clc
clear all
%??創(chuàng)建訓練樣本
%??線性函數的訓練
Mn_Train=100*[rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5;...
rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5];
n=size(Mn_Train,2);
%??Mn_Train 為2*20的矩陣
Nn_Train=[2*Mn_Train;3*Mn_Train(1,:)];
%??Nn_Train 為3*20的矩陣
%??將訓練樣本進行聚類分析,分為4類
H=4;
%??將樣本歸一化
[SampleX,pmin,pmax,SampleY,tmin,tmax]=premnmx(Mn_Train,Nn_Train);
%??將訓練樣本進行聚類并形成聚類中心
options=statset('Display','final');
[index,center]=kmeans(SampleX',H,'Distance','city',...
'Replicates',10,'Options',options);
figure(1)
X=SampleX';
set(figure(1),'color','w')
hold on
plot(X(index==1,1),X(index==1,2),'ro','markersize',9,'markeredgecolor',...
'k','markerfacecolor','r')
plot(X(index==2,1),X(index==2,2),'go','markersize',9,'markeredgecolor',...
'k','markerfacecolor','g')
plot(X(index==3,1),X(index==3,2),'mo','markersize',9,'markeredgecolor',...
'k','markerfacecolor','m')
plot(X(index==4,1),X(index==4,2),'bo','markersize',9,'markeredgecolor',...
'k','markerfacecolor','b')
plot(center(:,1),center(:,2),'ko','markersize',15,'markeredgecolor',...
'k','markerfacecolor','k')
title('樣本聚類','fontsize',16)
grid on
hold off
%??spread徑函數的擴展速度設置
spread=0.3;
%??基于高斯函數的隱藏層神經元的輸出
%??形成4*20的矩陣
%??閾值
b=ones(1,H)*0.8326/spread;
center=center';
Hidden_Out=zeros(H,size(SampleX,2));
for i=1:H
for j=1:size(SampleX,2)
Hidden_Out(i,j)=exp(-b(i)*(norm(SampleX(:,j)-center(:,i)).^2));
end
end
%??對輸出層權重的訓練,最速下降法
MaxIteration=1000;
Iteration=0;
tol=1e-3;
lemda=0.001;
%??初始化參數和閾值
N=size(SampleY,1);
W=0.5*rand(N,H)-0.1;
B=0.5*rand(N,1)-0.1;
%??網絡輸出值
NetOut=W*Hidden_Out+repmat(B,1,n);
Resid=SampleY-NetOut;
%??均方誤
MSE_error=sumsqr(Resid)./(N*n);
%??訓練權重開始
while Iteration
NetOut=W*Hidden_Out+repmat(B,1,n);
Resid=SampleY-NetOut;
MSE_error=sumsqr(Resid)./(N*n);
Delta=Resid;
%??最速下降訓練
dW=Delta*Hidden_Out';
dB=Delta*ones(n,1);
W=W+lemda*dW;
B=B+lemda*dB;
if MSE_error
break;
end
Iteration=Iteration+1;
end
NetOut=W*Hidden_Out+repmat(B,1,n);
Samplefit=postmnmx(NetOut,tmin,tmax);
%??將擬合樣本和原樣本比較
figure(2)
set(figure(2),'color','w')
hold on
subplot(3,1,1)
hold on
plot(1:20,Nn_Train(1,:),'ro-','markersize',8)
plot(1:20,Samplefit(1,:),'bo-','markersize',8)
title('樣本擬合對比')
subplot(3,1,2)
hold on
plot(1:20,Nn_Train(2,:),'ro-','markersize',8)
plot(1:20,Samplefit(2,:),'bo-','markersize',8)
title('樣本擬合對比')
subplot(3,1,3)
hold on
plot(1:20,Nn_Train(3,:),'ro-','markersize',8)
plot(1:20,Samplefit(3,:),'bo-','markersize',8)
title('樣本擬合對比')
hold off
總結
以上是生活随笔為你收集整理的python rbf神经网络_原创,基于径向基函数(RBF)神经网络RBF网络的举例应用!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中xrange函数_pyth
- 下一篇: python小括号报错_Python学习