前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >极限学习机(Extreme Learning Machine)概述

极限学习机(Extreme Learning Machine)概述

作者头像
全栈程序员站长
发布2022-09-20 16:03:07
1.5K0
发布2022-09-20 16:03:07
举报
文章被收录于专栏:全栈程序员必看

摘要

当今研究领域的一项事实就是,前向神经网络(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 个任意的样本 (xj,tj) ,其中,

xj=[xj1,xj2,...,xjn]TRntj=[tj1,tj2,...,tjm]TRm

对于一个有 L 个隐层节点的单隐层神经网络可以表示为

i=1ig(wixj+bi)=oj, j=1,2,...,N

其中, g(x) 为激活函数, wi=[wi1,wi2,...,win]T 是第 i 个隐层单元的输入权重, bi 是第 i 个隐层单元的偏置, βi=[βi1,βi2,...,βim]T 是第 i 个隐层单元的输出权重。 wixj 表示 wixj 的内积。

1.学习目标

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

j=1N||ojtj||=0

即存在 wixjbi 使得:

i=1ig(wixj+bi)=tj, j=1,2,...,N

可以矩阵表示:

Hβ=T

其中, H 是隐层节点的输出, β 为输出权重, T 为期望输出。

H(w1,...,wL,b1,...,bL,x1,...,xN)=⎡⎣⎢⎢g(w1x1+b1)⋮g(w1xN+b1)⋯⋯⋯g(wLx1+bL)⋮g(wLxN+bL)⎤⎦⎥⎥N×=⎡⎣⎢⎢β1TβLT⎤⎦⎥⎥L×m T=⎡⎣⎢⎢t1TtNT⎤⎦⎥⎥N×m

为了能够训练单隐层神经网络,我们希望得到 wi^ , bi^ 和 βi^ ,使得

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

其中, i=1,2,...,L ,这等价于最小化损失函数

E=∑j=1N||∑i=1ig(wixj+bi)−tj||22

2.学习方法

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

β^=H†⋅T

其中, H† 是矩阵 HMoorePenrose 广义逆矩阵。且可证明求得的解 β^ 的范数是最小的并且唯一。


实现代码

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

输入的训练数据,格式为一个 N×(1+n) 矩阵,其中每行代表一个样本(共有 N 行)。每行的第一个元素为该样本的“回归的期望值”或“分类的类别号”(对应于 tj ),后面的n个元素为该样本的输入数据(对应于 xjRn )。测试数据的格式也类似。

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

代码语言:javascript
复制
[TrainingTime, TestingTime, TrainingAccuracy, TestingAccuracy] = elm('sinc_train', 'sinc_test', 0, 20, 'sig')

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

代码语言:javascript
复制
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.

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167918.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 极限学习机原理
    • 1.学习目标
      • 2.学习方法
      • 实现代码
      • 参考资料:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档