1. ELM 是什么

ELM的个人理解: 单隐层的前馈人工神经网络,特别之处在于训练权值的算法: 在单隐层的前馈神经网络中,输入层到隐藏层的权值根据某种分布随机赋予,当我们有了输入层到隐藏层的权值之后,可以根据最小二乘法得到隐藏层到输出层的权值,这也就是ELM的训练模型过程。

与BP算法不同,BP算法(后向传播算法),输入层到隐藏层的权值,和隐藏层到输出层的权值全部需要迭代求解(梯度下降法)

用一张老图来说明,也就是说上图中的Wi1,Wi2,Wi3 在超限学习机中,是随机的,固定的,不需要迭代求解的。我们的目标只需要求解从隐藏层到输出层的权值。毫无疑问,相对于BP算法,训练速度大大提高了。

2. ELM 的训练过程

在上述公式中,wi 表示输入层到隐藏层的权值, bi表示系统偏置(bias),ß   则是我们的目标:隐藏层到输出层的权值,N 表示训练集的大小,oj 表示分类结果。为了无限逼近训练数据的真实结果,我们希望分类结果与真实结果t一致,那么也就是所以上式可以表示为 (懒了,不想用公式编辑器,TAT)

用矩阵表示,则 

其中N 表示训练集的大小,N~ 表示隐藏层结点的数量,g(x)表示active function(激活函数?),g(x)要求无限可微。

怎么求解这个方程就成为了ELM的训练过程,恩。

求解方法:1. 传统的梯度下降法 (不说了,就是BP算法)

2.  LS 最小二乘法方法

目标:最小化误差

根据 Hß = T, 如果H 是一个方阵的话,ß可以直接求解为H-1T。

如果H不是, 最小误差的ß 为 ,其中H+ 为H的Moore-Penrose 广义逆。

先写到这里了,基本训练过程已经搞清楚了,可是一个这么简单的算法为什么可以work,还有待研究。。。

超限学习机 (Extreme Learning Machine, ELM) 学习笔记 (一)的更多相关文章

  1. 极限学习机(Extreme Learning Machine)学习笔记

    最近研究上了这个一个东西--极限学习机. 在很多问题中,我大多会碰到两个问题,一个是分类,另一个就是回归.简单来说,分类是给一串数打个标签,回归是把一串数变为一个数. 在这里我们需要处理的数据一般维度 ...

  2. Extreme Learning Machine(ELM)的工程哲学

    Extreme Learning Machine(ELM)的工程哲学 David_Wang2015 发布于2015年5月6日 11:29 工程问题往往需要的是一定精度范围内的结果,而不是“真正的”结果 ...

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

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

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

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

  5. Extreme Learning Machine

    Extreme Learning Machine 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. ELM 2004年南洋理工大学黄广斌提出了ELM ...

  6. Deep learning with Python 学习笔记(11)

    总结 机器学习(machine learning)是人工智能的一个特殊子领域,其目标是仅靠观察训练数据来自动开发程序[即模型(model)].将数据转换为程序的这个过程叫作学习(learning) 深 ...

  7. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要系列文章索引

    从发表第一篇文章到最后一篇文章,时间间隔有整整一个月,虽只有5篇文章,但每一篇文章都是我吸收<LEARNING HARD C#学习笔记>这本书的内容要点及网上各位大牛们的经验,没有半点废话 ...

  8. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要三

    最近工作较忙,手上有几个项目等着我独立开发设计,所以平时工作日的时候没有太多时间,下班累了就不想动,也就周末有点时间,今天我花了一个下午的时间来继续总结与整理书中要点,在整理的过程中,发现了书中的一些 ...

  9. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二

    今天继续分享我的阅读<LEARNING HARD C#学习笔记>知识点总结与摘要二,仍然是基础知识,但可温故而知新. 七.面向对象 三大基本特性: 封装:把客观事物封装成类,并隐藏类的内部 ...

随机推荐

  1. 第一次用THINKPHP 报路径错

    我第一次 看网上写的代码 define('THINK_PATH','ThinkPHP');define('App_NAME','43');define('App_PATH','.'); require ...

  2. 使用assembly将maven项目pom.xml中的jar包打包

    参考官方网站:http://maven.apache.org/plugins/maven-assembly-plugin/usage.html 方法一:将pom.xml引入的jar包打到zip文件夹中 ...

  3. Mockito 如何 mock 返回值为 void 的方法

    转载:https://unmi.cc/mockito-how-to-mock-void-method/#more-7748 最初接触 Mockito 还思考并尝试过如何用它来 mock 返回值为 vo ...

  4. hdu1394 Minimum Inversion Number(最小逆序数)

    Minimum Inversion Number Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/O ...

  5. Android UI开发神兵利器之Icon

    好的设计离不开Icon 话不多.介绍2个国外的站点,一个用来找Icon,一个用来搞页面设计 http://dryicons.com/free-icons/ http://www.webdesignsh ...

  6. 设计模式之Visitor模式(笔记)

    訪问者模式:表示一个作用于某个对象结构中的各元素操作.它使你能够不改变各元素的类的前提下定义作用于这些元素的新操作. 首先定义一个visitor抽象类,为每一个详细类声明一个visit操作 publi ...

  7. oracle不同用户间访问表不添加用户名(模式)前缀

    默认的情况下,oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 user表,需要这样访问 select * from B.user;如果想要不添加用户前缀,需要这样处理: ...

  8. Struts2实现input数据回显

    /** 修改页面 */    public String editUI() {        //准备回显得数据        Role role = roleService.getById(id); ...

  9. 30天自制操作系统(三)进入32位模式并导入C语言

    1 制作真正的IPL IPL(Initial Program Loader),启动程序装载器,但是之前并没有实质性的装载任何程序,这次作者要开始装载程序了. 虽然现在开发的操作系统啥功能也没有,作者说 ...

  10. Docker入门系列4:命令行小结

    百度Baidu App Engine(BAE)平台也是以Docker作为其PaaS云基础. 目的就是为了解决以下问题: 1) 环境管理复杂: 从各种OS到各种中间件再到各种App,一款产品能够成功发布 ...