极限学习机(Extreme Learning Machine)概述
摘要
当今研究领域的一项事实就是,前向神经网络(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}),其中,
\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个隐层节点的单隐层神经网络可以表示为
\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.学习目标
单隐层神经网络学习的目标是使得输出的误差最小,可以表示为
\sum_{j=1}^{N} ||\mathbf{o_j} - \mathbf{t_j}|| = 0即存在 wi \mathbf{w_i}、 xj \mathbf{x_j}和 bi b_i使得:
\sum_{i=1}^{L} \mathbf{\beta_i} g(\mathbf{w_i} \cdot \mathbf{x_j} + b_i) = \mathbf{t_j},\ \ j=1,2,...,N可以矩阵表示:
\mathbf{H} \cdot \mathbf{\beta} = \mathbf{T}其中, H \mathbf{H}是隐层节点的输出, β \mathbf{\beta}为输出权重, T \mathbf{T}为期望输出。
\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}},使得
|| \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 = \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}。并且输出权重可以被确定
\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)概述相关推荐
- MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现
极限学习机(Extreme Learning Machine, ELM) 极限学习机网络结构和BP网络结构类似. 和BP神经网络不同点: 极限学习机输入层到隐含层的权重W是可以随意指定的.BP神经网络 ...
- 极限学习机(Extreme Learning Machine)ELM
二.ELM 1.算法介绍及功能 极限学习机(Extreme Learning Machine) ELM是一种针对单隐含层前馈神经网络(Single-hiddenLayerFeedforwardNeur ...
- 极限学习机(Extreme Learning Machine, ELM)的训练与预测matlab仿真
目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 极限学习机(ELM)是当前一类非常热门的机器学习算法,被用来训练单隐层前馈神经网络(SLFN
- 极限学习机 Extreme Learning Machines 介绍
什么是极限学习机? 极限学习机(ELM, Extreme Learning Machines)是一种前馈神经网络,最早由新加坡南洋理工大学黄广斌教授于2006年提出.其发表的文章中对于极限学习机的描述 ...
- 【UWB】ELM,Extreme Learning Machine 极限学习机
文章目录 例子 1 例子 2 Ref. 例子 1 % 任务2: ELM 网络 % Date: 2021-10-15 % Author: Zhao-Jichao clear clc%% 训练 % 导入数 ...
- 极限学习机(Extreme Learning Machine)(小白之路)
优秀的博客已经很多了,在这里我粘贴一些对我有帮助的博客,感谢大佬们!(既有原理 也有 一些实现[python 和 matlab]): ①极限学习机(Extreme Learning Machine, ...
- 第七课 极限学习机( Extreme Learning Machine, ELM)
背景 前向神经网络的学习速度通常远低于要求,并且在过去几十年里一直是其应用的一个主要瓶颈.背后的两个关键原因可能是: 1)基于慢梯度的学习算法被广泛应用于神经网络的训练. 2)利用这种学习算法对网络的 ...
- 2Speech Emotion Recognition Using Deep Neural Network and Extreme Learning Machine
文章目录 前言 一.文章内容 二.文章总结 前言 原文地址-2014年 一.文章内容 不同与当时普遍使用统计方法研究感情识别,本文章主要是提出了一种使用DNN网络进行特征提取的办法,采用的模型结构如下 ...
- 【UWB】ELM 极限学习机原理及公式推导
文章目录 简介 Ref: 关于代码实现请参考:[UWB]ELM,Extreme Learning Machine 极限学习机 简介 极限学习机(Extreme Learning Machine) EL ...
最新文章
- mysql恢复数据的步骤_MySQL备份恢复数据的一般步骤
- 重构实践:体验interface的威力(一)
- 最新详细的JMM内存模型(三天熬夜血肝)
- 模拟电梯控制软件设计c语言,模拟电梯控制系统设计.docx
- Ulink2 No Ulink Device found 解决办法
- CentOS 7 yum 安装php5.6
- java获取运行时对象,java 面向对象(四十一):反射(五)反射应用二:获取运行时类的完整结构...
- 数据库SQL语言类型(DQL.DML.DDL.DCL)
- 《C语言接口与实现:创建可重用软件的技术》一1.5 习题
- 面试的那些事(收藏类)
- 判断坐标位置C语言,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
- 中国民生银行大数据团队的Flume实践
- java park_我可以在纯Java中实现park / unpark方法吗?
- Juniper - JunOS 常用技巧
- ecshop二次开发_Logo和版权信息
- [机缘参悟-12]:“易经“、“儒“、“释“、“道“、“法”、“墨”、“兵”的基本原理与核心思想
- BJ模拟 Different Trips【树上后缀数组】
- java pointer_Java EE 8 JSON Pointer讲解
- 14-TSS切换实验
- 西方金融交易员揭露行业潜规则
热门文章
- mysql去bom头_使用editplus等编程工具时UTF-8编码去掉BOM头方法
- oracle flashback 功能,Oracle 11g 新特性 Flashback Data Archive 使用实例
- 揭秘站长写博客必备四大实用工具
- Broadcast广播的分类
- php xsl xml,php-在现有网页中使用XSL显示XML文件
- 职称以考代评的专业有哪些_职称评审中,有一部分专业实行“以考代评”和“考评结合”...
- Dos下怎么返回上一级目录(DOS命令大全)
- Jena Ontology API
- 惊!莫让远程管理软件为僵尸网络做贡献
- spring基于5.3.0GA版本-笔记