极限学习机ELM原理与实现
极限学习机(ELM)是当前一类非常热门的机器学习算法,被用来训练单隐层前馈神经网络(SLFN)。本篇博文尽量通俗易懂地对极限学习机的原理进行详细介绍,之后分析如何用python实现该算法并对代码进行解释。
1. 算法的原理
极限学习机(ELM)用来训练单隐藏层前馈神经网络(SLFN)与传统的SLFN训练算法不同,极限学习机随机选取输入层权重和隐藏层偏置,输出层权重通过最小化由训练误差项和输出层权重范数的正则项构成的损失函数,依据Moore-Penrose(MP)广义逆矩阵理论计算解析求出。理论研究表明,即使随机生成隐藏层节点,ELM仍保持SLFN的通用逼近能力。在过去的十年里,ELM的理论和应用被广泛研究,从学习效率的角度来看,极限学习机具有训练参数少、学习速度快、泛化能力强的优点。
极限学习机的隐藏层节点数为 L,与单隐层前馈神经网络的结构一样,极限学习机的网络结构如下图所示:
极限学习机ELM是一类Single-hidden Layer Feedforward Neural Network(SLFNs)算法,由Huang等基于 Moore-Penrose 广义逆的理论提出,主要针对SLFNs中存在的学习速率慢,迭代时间长,学习参数如学习步长、学习率需要人为提前设置等问题。与传统的神经网络学习算法相比,ELM只需要设置合适的隐层节点数,随机生成隐层所需所有参数,利用最小二乘法确定输出层权值。整个学习过程只需一步而无需多次更新隐层参数。正是因为ELM算法的快速学习能力以及较强的非线性逼近能力等特点,使得ELM在实际应用中受到了研究者们的青睐。例如ELM及改进算法被广泛应用于故障检测、时间序列预测、姿态识别、化学分析、医疗诊断、智能供电等领域。
算法的推导见:ELM原理
在此基础上对,正则化极限学习机(RELM)、在线学习的极限学习机(OS-ELM)、带遗忘机制的在线学习极限学习机(FOS-ELM)使用python进行了实现,并基于一个简单的数据集对三种算法进行了比较,并比较了不同隐藏层节点对性能的影响。
# In[]
# 不同算法和隐藏层结果对比
class_dict = {"ELM":RELM_HiddenLayer,"OS_DELM":OS_DELM_HiddenLayer,"FOS_DELM":FOS_DELM_HiddenLayer}
funcs = ["ELM","OS_DELM","FOS_DELM"]
lists = {"ELM":[[],[]],"OS_DELM":[[],[]],"FOS_DELM":[[],[]]}
results = []
for func in funcs:list_ = lists[func]for j in range(1, 500, 20):func_ = class_dict[func]a = func_(X_train, j)a.classifisor_train(Y_train)predict = a.classifisor_test(X_test)pre = metrics.precision_score(predict, Y_true, average='macro')list_[0].append(j)list_[1].append(pre)results.append(list_)
plt.plot(results[0][0],results[0][1],label="ELM")
plt.plot(results[1][0],results[1][1],label="OS_DELM")
plt.plot(results[2][0],results[2][1],label="FOS_DELM")
plt.xlabel("n_hidden")
plt.ylabel("accuracy")
plt.legend()
plt.savefig("ELM.png")
plt.show()
全部代码下载:python+RELM+OS-ELM+FOS-ELM+代码实现-实例验证+算法比较.rar
极限学习机ELM原理与实现相关推荐
- 【ELM预测】基于粒子群算法改进极限学习机ELM实现数据预测matlab源码
一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...
- 【ELM预测】基于极限学习机ELM实现数据预测matlab源码
一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...
- 基于樽海鞘算法的极限学习机(ELM)回归预测-附代码
基于樽海鞘算法的极限学习机(ELM)回归预测 文章目录 基于樽海鞘算法的极限学习机(ELM)回归预测 1.极限学习机原理概述 2.ELM学习算法 3.回归问题数据处理 4.基于樽海鞘算法优化的ELM ...
- 基于哈里斯鹰算法的极限学习机(ELM)分类算法-附代码
基于哈里斯鹰算法的极限学习机(ELM)分类算法 文章目录 基于哈里斯鹰算法的极限学习机(ELM)分类算法 1.极限学习机原理概述 2.ELM学习算法 3.分类问题 4.基于哈里斯鹰算法优化的ELM 5 ...
- 【ELM预测】基于遗传算法改进极限学习机ELM实现数据预测matlab源码
一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...
- Python机器学习17——极限学习机(ELM)
本系列基本不讲数学原理,只从代码角度去让读者们利用最简洁的Python代码实现机器学习方法. (2023年3月11日,已更新--针对评论区指出没有加入激活函数,现在已更新,加入了sigmod激活函数, ...
- 基于粒子群算法的极限学习机(ELM)分类算法-附代码
基于粒子群算法的极限学习机(ELM)分类算法 文章目录 基于粒子群算法的极限学习机(ELM)分类算法 1.极限学习机原理概述 2.ELM学习算法 3.分类问题 4.基于粒子群算法优化的ELM 5.测试 ...
- 极限学习机(ELM)
1. 引言 极限学习机(extreme learning machine)ELM是一种简单易用.有效的单隐层前馈神经网络SLFNs学习算法.2004年由南洋理工大学黄广斌副教授提出.传统的神经网络学习 ...
- 【预测模型-ELM分类】基于极限学习机ELM+OSELM+KELM+半监督SSELM+USELM实现数据集分类附matlab代码
1 内容介绍 极限学习机是由黄广斌等[13]提出的一种针对前馈神经网络设计的机器学习算法.该算法结构简单.计算速率快.ELM的关键在于找到输出和输出之间的映射空间.首先确定隐含层之间的连接权值w和隐含 ...
- 基于极限学习机ELM的人脸识别程序
前言 有关极限学习机基础知识请参考 极限学习机详解 目标 基于YALE人脸库,15组人脸(每组照片代表一个人),进行人脸分类识别.(下载地址:YALE人脸库) 将每类人脸前10张照片用于学习,第11张 ...
最新文章
- python文件操作举例
- 笔记-高项案例题-2015年下-需求管理
- vs2012 与 win7 不兼容的问题
- HAProxy的日志配置以及ACL规则实现负载均衡
- HTML5 之 简单汇总
- 大数据之MapReduce详解(MR的运行机制及配合WordCount实例来说明运行机制)
- C++学习之路 | PTA乙级—— 1060 爱丁顿数 (25 分)(精简)
- 布尔运算,二进制和门电路
- 机器学习:神经网络之表达
- 0/1背包问题的动态规划法
- 5、只出现一次的数字
- linux目录蓝色,前言linux系统默认目录颜色是蓝色的,在黑背景下看不清楚,可以通过以下2种方法修改ls查看的颜色。方法:1、拷贝/etc/DIR_COLORS文件为...
- 微信开发者工具安装教程
- PsPice教程学习笔记(Cadence Allegro)
- SQL中行转列、列转行
- 细说内网横向工具WMIHACK
- Lua全局变量代码规范
- oracle账号共享,登陆后可下载mysql和jdk
- shell 批量修改文件名
- zookeeper 动物管理员