ELM(Extreme Learning Machine)是一种新型神经网络算法,最早由Huang于2004年提出【Extreme learning

machine: a new learning scheme of feedforward neural networks】。
与SVM,传统神经网络相比,ELM的训练速度非常快,需要人工干扰较少,对于异质的数据集其泛化能力很强。
Huang在【Extreme learning machines: a survey,2011】这篇论文中对ELM进行了总结,包括最初的ELM算法和后来被发展延伸的ELM算法(比如在线序列ELM算法、增量ELM算法和集成ELM算法等),里面的很多知识点值得学习。
ELM的原理
从神经网络的结构上来看,ELM是一个简单的SLFN,SLFN示意图如下:

该SLFN包括三层:输入层、隐含层和输出层(忽略输入层则为两层)。其中隐含层包括L个隐含神经元,一般情况下L远小于N,输出层的输出为m维的向量,对于二分类问题,显然该向量是一维的。
对于一个训练数据样本,忽略输入层和隐含层而只考虑隐含层神经元的输出和输出层,则神经网络的输出函数表达式为:ai和bi是隐含层节点的参数,表示第i个隐含层神经元和输出神经元之间的连接权值,即它是一个m维的权值向量。公式里面的G是隐含层神经元的输出。针对加法型隐含层节点,G为:其中,小g为激励函数,激励函数可以是线性函数,也可以是sigmoid函数;针对RBF型隐含层节点,G为:ai和bi分别表示了第i个径向基函数节点的中心和影响因子。
神经网络输出函数可以写成:,其中:

如果神经网络能够无误差的预测训练样本,那么隐含层和输出层的权值是有解的,特别的,当L=N时,肯定有解。但是实际问题中,L往往是远小于N的,那么求解权值向量的问题是无解的,即网络输出和实际值之间有误差,可以定义代价函数为:

接下来如何求解最优的权值向量,使得损失函数J最小呢?
针对这个问题ELM分两种情况解决:
a.如果H是列满秩的,那么可以通过最小二乘找到最佳的权值,其解为:,其中:

b.如果H是非列满秩的,则使用奇异值分解求解H的广义逆来计算最佳权值。

和BP使用梯度下降迭代更新所有层之间权值不同,ELM不调整SLFN的输入层和隐含层的权值,这些权值是随即设定的,因此ELM的训练速度非常快。ELM注重于隐含层到输出层的权值的选取,其采用的方法是最小二乘。
ELM算法一般可以描述如下:

在Huang的survey中描述了一种思想,该思想把SVM也看成了神经网络,该思想把神经网络的输入层到最后一层隐含层的部分或者SVM核函数映射的部分都看成了从输入空间到一个新的空间的转换,然后,BP会将误差反向传播更新权值使得误差最小化,而SVM则力求找到最大分界间隔的分界面,将新空间映射到输出空间,从这个角度来看,SVM确实可以看成是一种神经网络。
ELM最初算法就如上所述,从2004年至今,后来的学者对其进行了很多改进,主要包括对输入层和隐含层权值随即确定权值的优化、求解隐含层和输出层权值的优化(使得ELM更适应于噪声数据集)、核函数ELM以及加入了正则化项的损失函数(求解结构风险而不再是经验风险)、ELM和其他方法相结合等。ELM为神经网络的结构设计提供了一个新的思路,使我们更好地理解神经网络,但是还有很多问题需要解决,比如隐含层节点个数的确定,正则化项的选择等等。作为一个性能很好的机器,我们也可以将其应用到诸多交叉学科的应用中。

paper 103:ELM算法的更多相关文章

  1. paper 84:机器学习算法--随机森林

    http://www.cnblogs.com/wentingtu/archive/2011/12/13/2286212.html中一些内容 基础内容: 这里只是准备简单谈谈基础的内容,主要参考一下别人 ...

  2. 【uva 177】Paper Folding(算法效率--模拟)

    P.S.模拟真の难打,我花了近乎三小时!o(≧口≦)o 模拟题真的要思路清晰!分块调试. 题意:著名的折纸问题:给你一张很大的纸,对折以后再对折,再对折--每次对折都是从右往左折,因此在折了很多次以后 ...

  3. paper 102:极限学习机(Extreme Learning Machine)

    原文地址:http://blog.csdn.net/google19890102/article/details/18222103   极限学习机(Extreme Learning Machine) ...

  4. 使用Cross-validation (CV) 调整Extreme learning Machine (ELM) 最优参数的实现(matlab)

    ELM算法模型是最近几年得到广泛重视的模型,它不同于现在广为火热的DNN. ELM使用传统的三层神经网络,只包含一个隐含层,但又不同于传统的神经网络.ELM是一种简单易用.有效的单隐层前馈神经网络SL ...

  5. ELM极限学习机

    极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解神经网络算法.ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),ELM比传统的 ...

  6. Redis内存管理中的LRU算法

    在讨论Redis内存管理中的LRU算法之前,先简单说一下LRU算法: LRU算法:即Least Recently Used,表示最近最少使用页面置换算法.是为虚拟页式存储管理服务的,是根据页面调入内存 ...

  7. 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)

       (目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...

  8. 实施vertex compression所遇到的各种问题和解决办法

    关于顶点压缩,好处是可以减少带宽,一定程度提高加载速度,可以提高约5-10%的fps,特别是mobile上,简单描述就是: 压缩之前(32字节) position float3 12normal fl ...

  9. 基于2-channel network的图片相似度判别

    一.相关理论 本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:<Learning to Compare Image Patches via Convolutional Neur ...

随机推荐

  1. Linux3.4内核 Yaffs2文件系统的移植

    作者:李老师,华清远见嵌入式学院讲师. [实验目的] Yaffs2文件系统是嵌入式系统中常用到的一种文件系统,是也是移植Android所必须的.通过向FS_S5PC100平台移植Yaffs文件系统,了 ...

  2. Secrets

    https://www.youtube.com/watch?v=qHm9MG9xw1o I need another storySomething to get off my chestMy life ...

  3. hbases索引技术:Lily HBase Indexer介绍

    Lily HBase Indexer 为hbase提供快速查询,他允许不写代码,快速容易的把hbase行索引到solr.Lily HBase Indexer drives HBase indexing ...

  4. 28个MongoDB 的问题

    MongoDB是目前最好的面向文档的免费开源NoSQL数据库.如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答.这些MongoDB NoS ...

  5. java 深入浅出工厂模式

    一.引子 话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰.Bmw宝马.Audi奥迪,还雇了司机为他开车.不过,暴发户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“ ...

  6. 使用Eclipse构建Maven项目 (step-by-step)

    Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包.本文仅对Eclipse中如何安装.配置和使用Maven进行了介绍.完全step by step. 如果觉得本文 ...

  7. Android-----工程文件目录介绍

  8. AESUtils.java

    package com.vcredit.framework.utils; import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySp ...

  9. 10.5.2 Boot Block 启动块 - 操作系统教程

    简单一篇文章明白地讲解了计算机操作系统的启动过程 OPERATING SYSTEM CONCEPTS ABRAHAM SILBERSCHATZ PETER BAER GALVIN GREG GAGNE ...

  10. thinkphp3.2 cli模式的正确使用方法

    最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多, ...