摘要

当今研究领域的一项事实就是,前向神经网络(feed-forward neural networks)的训练速度比人们所期望的速度要慢很多。并且,在过去的几十年中,前向神经网络在应用领域存在着很大的瓶颈。导致这一现状的两个关键因素就是:

  • 神经网络的训练,大多使用基于梯度的算法,而这种算法的训练速度有限;
  • 使用这种训练算法,在迭代时,网络的所有参数都要进行更新调整。

而在2004年,由南洋理工学院黄广斌教授所提出的极限学习机器(Extreme Learning Machine,ELM)理论可以改善这种情况。最初的极限学习机是对单隐层前馈神经网络(single-hidden layer feed-forward neural networks,SLFNs)提出的一种新型的学习算法。它随机选取输入权重,并分析以决定网络的输出权重。在这个理论中,这种算法试图在学习速度上提供极限的性能。
如需转载本文,请注明出处:http://blog.csdn.net/ws_20100/article/details/49555959


极限学习机原理

ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM 可以随机初始化输入权重和偏置并得到相应的隐节点输出:

对于一个单隐层神经网络(结构如上图所示),假设有 N N个任意的样本(xj,tj)(\mathbf{x_j},\mathbf{t_j}),其中,

xj=[xj1,xj2,...,xjn]T∈Rn , tj=[tj1,tj2,...,tjm]T∈Rm

\mathbf{x_j} = [x_{j1},x_{j2},...,x_{jn}]^T \in R^n\ ,\ \mathbf{t_j} = [t_{j1},t_{j2},...,t_{jm}]^T \in R^m对于一个有 L L个隐层节点的单隐层神经网络可以表示为

∑i=1Lβig(wi⋅xj+bi)=oj,  j=1,2,...,N

\sum_{i=1}^{L} \mathbf{\beta_i} g(\mathbf{w_i} \cdot \mathbf{x_j} + b_i) = \mathbf{o_j},\ \ j=1,2,...,N其中, g(x) g(x)为激活函数, wi=[wi1,wi2,...,win]T \mathbf{w_i} = [w_{i1},w_{i2},...,w_{in}]^T是第 i i个隐层单元的输入权重,bib_i是第 i i个隐层单元的偏置,βi=[βi1,βi2,...,βim]T\mathbf{\beta_i} = [\beta_{i1},\beta_{i2},...,\beta_{im}]^T是第 i i个隐层单元的输出权重。wi⋅xj\mathbf{w_i} \cdot \mathbf{x_j}表示 wi \mathbf{w_i}和 xj \mathbf{x_j}的内积。

1.学习目标

单隐层神经网络学习的目标是使得输出的误差最小,可以表示为

∑j=1N||oj−tj||=0

\sum_{j=1}^{N} ||\mathbf{o_j} - \mathbf{t_j}|| = 0即存在 wi \mathbf{w_i}、 xj \mathbf{x_j}和 bi b_i使得:

∑i=1Lβig(wi⋅xj+bi)=tj,  j=1,2,...,N

\sum_{i=1}^{L} \mathbf{\beta_i} g(\mathbf{w_i} \cdot \mathbf{x_j} + b_i) = \mathbf{t_j},\ \ j=1,2,...,N可以矩阵表示:

H⋅β=T

\mathbf{H} \cdot \mathbf{\beta} = \mathbf{T}其中, H \mathbf{H}是隐层节点的输出, β \mathbf{\beta}为输出权重, T \mathbf{T}为期望输出。

H(w1,...,wL,b1,...,bL,x1,...,xN)=⎡⎣⎢⎢g(w1⋅x1+b1)⋮g(w1⋅xN+b1)⋯⋯⋯g(wL⋅x1+bL)⋮g(wL⋅xN+bL)⎤⎦⎥⎥N×Lβ=⎡⎣⎢⎢β1T⋮βLT⎤⎦⎥⎥L×m T=⎡⎣⎢⎢t1T⋮tNT⎤⎦⎥⎥N×m

\mathbf{H}(\mathbf{w_1},...,\mathbf{w_L},b_1,...,b_L,\mathbf{x_1},...,\mathbf{x_N})\\= \begin{bmatrix} g(\mathbf{w_1} \cdot \mathbf{x_1} + b_1) & \cdots & g(\mathbf{w_L} \cdot \mathbf{x_1} + b_L) \\ \vdots&\cdots&\vdots \\ g(\mathbf{w_1} \cdot \mathbf{x_N} + b_1) & \cdots & g(\mathbf{w_L} \cdot \mathbf{x_N} + b_L) \end{bmatrix}_{N \times L} \\ \mathbf{\beta} = \begin{bmatrix} \mathbf{\beta_1}^T\\ \vdots\\ \mathbf{\beta_L}^T \end{bmatrix}_{L \times m} \ \mathbf{T} = \begin{bmatrix} \mathbf{t_1}^T\\ \vdots\\ \mathbf{t_N}^T \end{bmatrix}_{N \times m}为了能够训练单隐层神经网络,我们希望得到 wi^ \hat{\mathbf{w_i}}, bi^ \hat{b_i}和 βi^ \hat{\mathbf{\beta_i}},使得

||H(wi^,bi^)⋅β^−T||=minw,b,β||H(wi,bi)⋅β−T||

|| \mathbf{H}( \hat{\mathbf{w_i}},\hat{b_i} ) \cdot \hat{\mathbf{\beta}} - \mathbf{T} || = min_{\mathbf{w},b,\mathbf{\beta}} || \mathbf{H}( \mathbf{w_i},b_i ) \cdot \mathbf{\beta} - \mathbf{T} ||其中, i=1,2,...,L i=1,2,...,L,这等价于最小化损失函数

E=∑j=1N||∑i=1Lβi⋅g(wi⋅xj+bi)−tj||22

E = \sum_{j=1}^{N}|| \sum_{i=1}^{L} \mathbf{\mathbf{\beta_i} \cdot g(\mathbf{w_i} \cdot \mathbf{x_j} + b_i) - \mathbf{t_j}} ||_2^2

2.学习方法

传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重 wi \mathbf{w_i}和隐层的偏置 bi b_i被随机确定,隐层的输出矩阵 H \mathbf{H}就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统: H⋅β=T \mathbf{H} \cdot \mathbf{\beta} = \mathbf{T}。并且输出权重可以被确定

β^=H†⋅T

\hat{\mathbf{\beta}} = \mathbf{H}^{\dagger} \cdot \mathbf{T}其中, H† \mathbf{H}^{\dagger}是矩阵 H \mathbf{H}的 Moore−Penrose Moore-Penrose广义逆矩阵。且可证明求得的解 β^ \hat{\mathbf{\beta}}的范数是最小的并且唯一。


实现代码

代码下载:http://download.csdn.net/detail/ws_20100/9230271

输入的训练数据,格式为一个 N×(1+n) N \times (1+n)矩阵,其中每行代表一个样本(共有 N N行)。每行的第一个元素为该样本的“回归的期望值”或“分类的类别号”(对应于tjt_j),后面的n个元素为该样本的输入数据(对应于 xj∈Rn \mathbf{x_j} \in R^n)。测试数据的格式也类似。

对于回归应用,一个例子为:

[TrainingTime, TestingTime, TrainingAccuracy, TestingAccuracy] = elm('sinc_train', 'sinc_test', 0, 20, 'sig')

对于分类应用,一个例子为:

elm('diabetes_train', 'diabetes_test', 1, 20, 'sig')

这两个训练和测试集在黄广斌教授的网站上都可以下载。


参考资料:

[1] G.-B. Huang, Q.-Y. Zhu, and C.-K. Siew, “Extreme learning machine: A new learning scheme of feedforward neural networks,” in Proc. Int. Joint Conf. Neural Networks, July 2004, vol. 2, pp. 985–990.

极限学习机(Extreme Learning Machine)概述相关推荐

  1. MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现

    极限学习机(Extreme Learning Machine, ELM) 极限学习机网络结构和BP网络结构类似. 和BP神经网络不同点: 极限学习机输入层到隐含层的权重W是可以随意指定的.BP神经网络 ...

  2. 极限学习机(Extreme Learning Machine)ELM

    二.ELM 1.算法介绍及功能 极限学习机(Extreme Learning Machine) ELM是一种针对单隐含层前馈神经网络(Single-hiddenLayerFeedforwardNeur ...

  3. 极限学习机(Extreme Learning Machine, ELM)的训练与预测matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 极限学习机(ELM)是当前一类非常热门的机器学习算法,被用来训练单隐层前馈神经网络(SLFN

  4. 极限学习机 Extreme Learning Machines 介绍

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

  5. 【UWB】ELM,Extreme Learning Machine 极限学习机

    文章目录 例子 1 例子 2 Ref. 例子 1 % 任务2: ELM 网络 % Date: 2021-10-15 % Author: Zhao-Jichao clear clc%% 训练 % 导入数 ...

  6. 极限学习机(Extreme Learning Machine)(小白之路)

    优秀的博客已经很多了,在这里我粘贴一些对我有帮助的博客,感谢大佬们!(既有原理 也有 一些实现[python 和 matlab]): ①极限学习机(Extreme Learning Machine, ...

  7. 第七课 极限学习机( Extreme Learning Machine, ELM)

    背景 前向神经网络的学习速度通常远低于要求,并且在过去几十年里一直是其应用的一个主要瓶颈.背后的两个关键原因可能是: 1)基于慢梯度的学习算法被广泛应用于神经网络的训练. 2)利用这种学习算法对网络的 ...

  8. 2Speech Emotion Recognition Using Deep Neural Network and Extreme Learning Machine

    文章目录 前言 一.文章内容 二.文章总结 前言 原文地址-2014年 一.文章内容 不同与当时普遍使用统计方法研究感情识别,本文章主要是提出了一种使用DNN网络进行特征提取的办法,采用的模型结构如下 ...

  9. 【UWB】ELM 极限学习机原理及公式推导

    文章目录 简介 Ref: 关于代码实现请参考:[UWB]ELM,Extreme Learning Machine 极限学习机 简介 极限学习机(Extreme Learning Machine) EL ...

最新文章

  1. mysql恢复数据的步骤_MySQL备份恢复数据的一般步骤
  2. 重构实践:体验interface的威力(一)
  3. 最新详细的JMM内存模型(三天熬夜血肝)
  4. 模拟电梯控制软件设计c语言,模拟电梯控制系统设计.docx
  5. Ulink2 No Ulink Device found 解决办法
  6. CentOS 7 yum 安装php5.6
  7. java获取运行时对象,java 面向对象(四十一):反射(五)反射应用二:获取运行时类的完整结构...
  8. 数据库SQL语言类型(DQL.DML.DDL.DCL)
  9. 《C语言接口与实现:创建可重用软件的技术》一1.5 习题
  10. 面试的那些事(收藏类)
  11. 判断坐标位置C语言,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
  12. 中国民生银行大数据团队的Flume实践
  13. java park_我可以在纯Java中实现park / unpark方法吗?
  14. Juniper - JunOS 常用技巧
  15. ecshop二次开发_Logo和版权信息
  16. [机缘参悟-12]:“易经“、“儒“、“释“、“道“、“法”、“墨”、“兵”的基本原理与核心思想
  17. BJ模拟 Different Trips【树上后缀数组】
  18. java pointer_Java EE 8 JSON Pointer讲解
  19. 14-TSS切换实验
  20. 西方金融交易员揭露行业潜规则

热门文章

  1. mysql去bom头_使用editplus等编程工具时UTF-8编码去掉BOM头方法
  2. oracle flashback 功能,Oracle 11g 新特性 Flashback Data Archive 使用实例
  3. 揭秘站长写博客必备四大实用工具
  4. Broadcast广播的分类
  5. php xsl xml,php-在现有网页中使用XSL显示XML文件
  6. 职称以考代评的专业有哪些_职称评审中,有一部分专业实行“以考代评”和“考评结合”...
  7. Dos下怎么返回上一级目录(DOS命令大全)
  8. Jena Ontology API
  9. 惊!莫让远程管理软件为僵尸网络做贡献
  10. spring基于5.3.0GA版本-笔记