专栏首页DeepHub IMBA极限学习机 Extreme Learning Machines 介绍

极限学习机 Extreme Learning Machines 介绍

什么是极限学习机?

极限学习机(ELM, Extreme Learning Machines)是一种前馈神经网络,最早由新加坡南洋理工大学黄广斌教授于2006年提出。其发表的文章中对于极限学习机的描述如下:

该算法具有良好的泛化性能以及极快的学习能力

极限学习机和标准神经网络的区别

ELM 不需要基于梯度的反向传播来调整权重,而是通过 Moore-Penrose generalized inverse来设置权值。

标准的单隐藏层神经网络结构如下:

单隐藏层神经网络

其计算过程如下:

  1. 输入值乘以权重值
  2. 加上偏置值
  3. 进行激活函数计算
  4. 对每一层重复步骤1~3
  5. 计算输出值
  6. 误差反向传播
  7. 重复步骤1~6

而 ELM 则对其进行了如下改进:去除步骤4;用一次矩阵逆运算替代步骤6;去除步骤7。

极限学习机计算过程

具体地,ELM 计算过程如下:

式中:

L 是隐藏单元的数量;

N 是训练样本的数量;

beta 是第 i 个隐藏层和输出之间的权重向量;

w 是输入和输出之间的权重向量;

g 是激活函数;

b 是偏置向量;

x 是输入向量。

极限学习机的计算过程与标准反向传播神经网络十分类似,但是隐藏层与输出之间的权重矩阵是伪逆矩阵。将上式可以简写为:

式中:

m 是输出的数量;

H 是隐藏层输出矩阵;

T 是训练集目标矩阵;

ELM 主要相关理论

定理一:

定理二:

定理三:

了解了上述定理后,现在我们要做的是定义我们的代价函数。如果输入权重和隐层层偏差可以随机选择,那么SLFN是一个线性系统。

由于我们考虑的 ELM 是一个线性系统,那么可以设计优化函数:

由于 H 是可逆的,所以计算如下:

ELM 算法

ELM 算法主要过程有:

  1. w_i,b_i,i=1,L 随机初始化
  2. 计算隐藏层输出 H
  3. 计算输出权重矩阵
  1. 利用 beta 在新的数据集上进行预测 T

Python 应用案例见https://github.com/burnpiro/elm-pure

其中,基础的 ELM 算法就能够在 MNIST 数据集达到 91%以上的准确率,并且在 intel i7 7820X CPU 平台上通过 3s 就能够计算完成。

性能对比

首次提出 ELM 的论文中,于2006年通过 Pentium 4 1.9GHz CPU 用 ELM 方法对不同的数据集进行了计算,结果如下:

很明显梯度下降比矩阵反转需要更长的训练时间。此结果表中最重要的信息是准确性和节点数。在前两个数据集中,可以看到作者使用了不同大小的BP来获得与ELM相同的结果。在第一种情况下,BP网络的大小是原来的5倍,在第二种情况下,BP网络的大小是原来的2倍。也说明了 ELM 方法在逼近数据集时有很高的精确性。

本文也对两个具有代表性的数据集(CIFAR-10, MNIST)进行了分析,结果如下:

总结

ELM 算法虽然没有传统神经网络的准确度高,但是可以被用于需要即时计算的场景中。

本文分享自微信公众号 - DeepHub IMBA(deephub-imba),作者:P**nHub兄弟网站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 树莓派上编译安装pytorch1.4

    树莓派是一个香烟盒大小的电脑,能运行window(IOT)和linux系统。可以当做一台普通的电脑用来办公上网,还有裸露的针脚可以用来控制你自己设计的电路。比如...

    deephub
  • Pytorch中的分布式神经网络训练

    随着深度学习的多项进步,复杂的网络(例如大型transformer 网络,更广更深的Resnet等)已经发展起来,从而需要了更大的内存空间。经常,在训练这些网络...

    deephub
  • 基于树的机器学习模型的演化

    下面的示例描述了只有两个特性和两个类的样例数据集(左)。决策树算法从根节点中的所有15个数据点开始。该节点被称为不纯节点,因为它混合了多种异构数据。在每个决策节...

    deephub
  • Yann LeCun:谁能解释极限学习机(ELM)牛在哪里?

    用户1737318
  • shader 动画之 loading 特效! Cocos Creator !

    由于实现动画需要纹理uv的坐标。刚好 cocos creator 在 sprite 这个组件中,会传入uv坐标。

    白玉无冰
  • linux-console-shell的一些常用命令

    ctl + u 删除光标以前的字符,其实这个是剪切 ctl + k 删除光标以后的字符

    潇洒
  • 深度学习相关精选422

    What Are The Most Promising Areas Of Machine Learning Research Right Now?

    代码医生工作室
  • 云计算中的安全问题概览

    虽然云计算可能是灵活,并且有效降低成本,但缺乏数据保护和合规标准使其安全成为最大的应用障碍。 面向云计算的IT管理员和企业安全团队最害怕的是什么?云计算中的安全...

    静一
  • 机器之心专访杨强教授:联邦迁移学习与金融领域的AI落地

    7 月 21 日、22 日,由 KDD China 主办,西南交通大学和京东金融承办的 KDD Summer School 暨 KDD Pre-Conferen...

    机器之心
  • 为什么说人工智能是一个大谎言

    或者往轻了说,它是一个混淆概念。往重了说,是用来欺骗大众的流行语,并且流行度非常高。

    大数据文摘

扫码关注云+社区

领取腾讯云代金券