本站所有资源均为高质量资源,各种姿势下载。
本项目是一个基于MATLAB开发的极限学习机(Extreme Learning Machine, ELM)算法研究与对比系统。项目完整集成了当前流行的ELM基础算法,并重点复现了两种高性能的改进算法:发表于《Neural Computing》的EELM(Effective ELM)以及改进型YELM。该系统的核心功能是提供一个统一的实验框架,能够在完全相同的实验条件下(相同的数据输入、隐层节点数、激活函数等),对标准ELM、EELM、YELM三种方法进行严格的性能比对和验证。
为了确保代码的即插即用性,本项目内置了基于高斯混合模型的Pendigits模拟数据集生成器,用户无需下载外部数据即可直接运行并观察算法效果。
本项目中的main.m脚本不仅仅是调用工具箱,而是从底层通过矩阵运算实现了算法的核心逻辑。以下是各算法在代码中的具体实现分析:
pinv函数)来求解输出权重Beta。这是最原始且标准的ELM实现方式。train_eelm函数中,算法并未直接使用[-1, 1]的均匀分布,而是引入了一个缩放因子 scale_factor = 1.5 / sqrt(n_features)。
* 通过该因子控制初始权重和偏置的方差,确保输入信号映射到激活函数(如Sigmoid)的线性敏感区域,从而提高梯度的有效传递和特征提取能力。
* 其余训练步骤与标准ELM保持一致,保证了对比的公平性。train_yelm函数中,不再使用pinv求解。
* 引入正则化系数 C(代码中默认设为1000)。
* 输出权重Beta使用的是闭式解公式:$beta = (HH^T + frac{I}{C})^{-1} H T$。
* 这种实现方式通过在H矩阵的自相关矩阵对角线上增加微小扰动,显著提升了系统的鲁棒性和泛化能力。main.m文件的实际执行流程完全遵循以下逻辑:
load_pendigits_simulation生成训练集和测试集。
* 使用mapminmax将特征数据归一化至[-1, 1]区间。
* 使用自定义函数ind2vec_custom将整数型标签转换为神经网络所需的One-Hot编码格式。n_runs次),在每一轮中依次执行:
* 训练与测试ELM:记录训练时间、测试时间和分类准确率。
* 训练与测试EELM:应用优化后的初始化策略进行训练和评估。
* 训练与测试YELM:应用正则化策略进行训练和评估。
* 进度反馈:通过进度条(Waitbar)和命令行实时显示当前轮次的各算法准确率。print_results函数格式化打印最终统计结果。
* 调用plot_comparison函数绘制图表:
* 准确率对比图:使用箱线图展示三种算法的稳定性分布。
* 耗时对比图:使用双柱状图展示训练与测试阶段的时间开销。