极限学习机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

  • 12
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能学习者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值