基于径向基函数RBF网络的手写数字分类(Matlab代码实现)
💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。、
目录
💥1 概述
本文的目标是使用径向基函数网络对MNIST数据集中的手写数字(从0到9)进行分类。径向基函数网络是一种使用径向基函数(RBF)作为激活函数的人工神经网络。它有三层:
·输入图层
·具有RBF 激活功能的隐藏层·线性输出层
网络的输出是输入和神经元参数的径向基函数的线性组合。
下图说明了此结构:
每个隐藏单元由中心和展开/宽度定义。每个中心都是从训练集中抽取的样本。隐藏单元的激活由输入向量x与隐藏单元中心之间的距离决定。它们离得越近,隐藏单元的激活度就越高。它将径向基函数行为解释为激活函数。
学习过程包括两个阶段:
1.参数化隐藏单元:定义它们的中心和宽度。它可以通过随机选择或聚类来完成。这些中心直接取自训练数据集。2.通过计算插值矩阵查找隐藏单位和输出单位之间的权重值。
📚2 运行结果
RBFN仅用于对手写数字1和8进行分类(通过提取1和8以外的标签样本来分类MNIST数据集)。对于每个样本,网络给出一个实际输出,并使用阈值将预测作为标签1和预测作为标签
8。预测产生的错误率/准确性取决于阈值。
已经测试了两种不同类型的隐藏单位(学习过程的第1阶段)︰
精确插值:我们定义与训练样本一样多的隐藏单元,每个隐藏单元的中心是一个训练样本·“随机选择固定中心"方法:随机选择M个训练样本来定义隐藏单元的中心
结果如下:
2.2 rbfn_regularization
2.3 rbfn_tuning_std
我们可以注意到,无论使用精确插值方法的阈值如何,训练集的识别性能均为1。事实上,RBFN的输出和训练样本的标签之间存在精确的拟合。关于“随机选择的固定中心"方法,训练集的准确性不如精确插值的训练集那么完美。事实上,由于隐藏单元的数量较少,因此不再有确切的拟合。它为测试集带来更好的结果。
简而言之,RBEN可能方便拟合给定数据集(训练集的精度非常高),但可能会过度拟合!必须选择正确数量的隐藏单元(不要太高)并使用正则化。
部分代码:
% Compute the weights based on the interpolation matrix found with the
% Fixed Centers Selected at random method
phi_std_train = interpolation_matrix(train_data, M, mu_random, sigma, true);
weights_std_matrix(:,i) = inv(phi_std_train' * phi_std_train) * (phi_std_train' * train_classlabel');
y_train_std = phi_std_train * weights_std_matrix(:,i);
% Output of the test set
phi_std_test = interpolation_matrix(test_data, M, mu_random, sigma, true);
y_test_std = phi_std_test * weights_std_matrix(:,i);
% Evaluation of the recognition performance
[thres_std, train_accuracy_std, test_accuracy_std] = recognition_performance(y_train_std, train_classlabel_logical, y_test_std, test_classlabel_logical, 1000);
% Plot the result
subplot(length(std)/2, 2, i)
plot(thres_exact, train_accuracy_std,'.-',thres_exact, test_accuracy_std,'^-');
axis([1,8,0,1]);
xlabel('threshold value')
ylabel('accuracy')
title(['Fixed Centers Selected at random method with a standard deviation equal to ' num2str(std(i))])
end
🌈3 Matlab代码实现
相关文章
- Matlab基本数据类型
- 【无人机路径规划】基于深度强化学习的多无人机辅助边缘计算网络路径规划(Matlab代码实现)
- 使用贝叶斯网络推理对肺癌诊断研究(Matlab代码实现)
- 基于时空网络的动态优化模型研究(Matlab代码实现)
- 含光热电站的冷、热、电综合能源系统优化调度【节点网络】(Matlab代码实现)
- 基于主从博弈的社区综合能源系统分布式协同优化运行策略(Matlab代码实现)
- 低压配电网络中三相潮流计算的前推回代法(Matlab实现)
- 无人机无线传感器网络中的节能数据采集(Matlab代码实现)
- 覆盖和覆盖D2D通信网络的传输容量分析(Matlab代码实现)
- 改进花朵授粉算法的无线传感器网络部署优化(Matlab代码实现)
- 【CDBS】凹边界的修改形状特征描述:应用于皮肤病变分类(Matlab代码实现)
- 【图像分割】基于神经气体网络的图像分割与量化(Matlab代码实现)
- 【智能算法】蚁群算法及Matlab实现 —— TSP问题
- 【MATLAB】求曲线(面)积分
- m虚拟MIMO系统的配对调度算法的matlab仿真,对比Random配对,Orthogonal配对以及Deteminant配对
- m基于NSGAII优化的WSN网络覆盖率问题matlab仿真,优化激活节点数量,网络能耗以及覆盖率
- m基于FC全卷积网络和kalman的遮挡车辆跟踪算法matlab仿真,用matconvnet-1.0-beta20工具箱
- 基于Bi-LSTM深度学习网络的遥感数据分类matlab仿真
- m分别使用BP神经网络和GRNN网络进行时间序列预测matlab仿真
- Matlab实现Hough变换检測图像中的直线
- 社交网络搜索算法SNS代码(Matlab实现)
- 覆盖和覆盖D2D通信网络的传输容量分析(Matlab代码实现)
- 无人机无线传感器网络中的节能数据采集(Matlab代码实现)
- 基于LEACH的随机网络生成无线传感器网络路由协议的仿真比较(Matlab代码实现)
- m异构蜂窝网络的K-Tier下行链路的matlab性能仿真,对比网络Voronoi图,覆盖率等
- m无线传感器网络WSN的时间同步捕获算法matlab仿真,对比单步捕获法,双步捕获法以及锯齿波匹配捕获法
- m基于DCAR编码感知的网络路由发现算法matlab仿真