本代码在Python中编写,适用径向基函数(RBF)算法对猫的图片进行识别。
2021-05-30 03:11:20 9KB RBF Python
1
针对数控切削加工表面粗糙度存在预测精度不高的问题,采用径向基(RBF)神经网络技术,以多组实际加工试验数据作为样本,建立了以转速n、进给速度vf、背吃力量ap为自变量的切削表面粗糙度预测模型。试验及预测结果表明:切削表面粗糙度RBF神经网络预测模型的预测相对误差小于2.7%,而回归分析预测值的相对误差在7.1%~14.0%变动。充分说明数控切削加工表面粗糙度RBF神经网络预测模型的预测精度高,可满足数控切削加工表面粗糙度实时在线预测的要求。
1
共有七个完整算法 % 1.基于聚类的RBF 网设计算法 % 一维输入,一维输出,逼近效果很好! SamNum = 100; % 总样本数 TestSamNum = 101; % 测试样本数 InDim = 1; % 样本输入维数 ClusterNum = 10; % 隐节点数,即聚类样本数 Overlap = 1.0; % 隐节点重叠系数 % 根据目标函数获得样本输入输出 rand('state',sum(100*clock)) NoiseVar = 0.1; Noise = NoiseVar*randn(1,SamNum); SamIn = 8*rand(1,SamNum)-4; SamOutNoNoise = 1.1*(1-SamIn+2*SamIn.^2).*exp(-SamIn.^2/2); SamOut = SamOutNoNoise + Noise; TestSamIn = -4:0.08:4; TestSamOut = 1.1*(1-TestSamIn+2*TestSamIn.^2).*exp(-TestSamIn.^2/2); figure hold on grid plot(SamIn,SamOut,'k+') plot(TestSamIn,TestSamOut,'r--') xlabel('Input x'); ylabel('Output y'); Centers = SamIn(:,1:ClusterNum); NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号 while 1, NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号 % 按最小距离原则对所有样本进行分类 for i = 1:SamNum AllDistance = dist(Centers',SamIn(:,i)); [MinDist,Pos] = min(AllDistance); NumberInClusters(Pos) = NumberInClusters(Pos) + 1; IndexInClusters(Pos,NumberInClusters(Pos)) = i; end % 保存旧的聚类中心 OldCenters = Centers; for i = 1:ClusterNum Index = IndexInClusters(i,1:NumberInClusters(i)); Centers(:,i) = mean(SamIn(:,Index)')'; end % 判断新旧聚类中心是否一致,是则结束聚类 EqualNum = sum(sum(Centers==OldCenters)); if EqualNum == InDim*ClusterNum, break, end end % 计算各隐节点的扩展常数(宽度) AllDistances = dist(Centers',Centers); % 计算隐节点数据中心间的距离(矩阵) Maximum = max(max(AllDistances)); % 找出其中最大的一个距离 for i = 1:ClusterNum % 将对角线上的0 替换为较大的值 AllDistances(i,i) = Maximum+1; end Spreads = Overlap*min(AllDistances)'; % 以隐节点间的最小距离作为扩展常数 % 计算各隐节点的输出权值 Distance = dist(Centers',SamIn); % 计算各样本输入离各数据中心的距离 SpreadsMat = repmat(Spreads,1,SamNum); HiddenUnitOut = radbas(Distance./SpreadsMat); % 计算隐节点输出阵 HiddenUnitOutEx = [HiddenUnitOut' ones(SamNum,1)]'; % 考虑偏移 W2Ex = SamOut*pinv(HiddenUnitOutEx); % 求广义输出权值 W2 = W2Ex(:,1:ClusterNum); % 输出权值 B2 = W2Ex(:,ClusterNum+1)
2020-02-24 03:01:02 8KB rbf算法源程序
1
RBF算法实现PID控制,程序可正常运行
2019-12-21 21:02:12 3KB RBF_PID
1
本算法实现了IDW和RBF算法,执行界面可参考我的博客。
2019-12-21 20:28:33 7.02MB QT IDW RBF 图像变形
1