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

极限学习机(Extreme Learning Machine)概述摘要当今研究领域的一项事实就是,前向神经网络(feed-forwardneuralnetworks)的训练速度比人们所期望的速度要慢很多。并且,在过去的几十年中,前向神经网络在应用领域存在着很大的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

摘要

当今研究领域的一项事实就是,前向神经网络(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]TRn  tj=[tj1,tj2,...,tjm]TRm

对于一个有



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



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

其中,



g(x)
为激活函数,



wi=[wi1,wi2,...,win]T
是第



i
个隐层单元的输入权重,



bi
是第



i
个隐层单元的偏置,



βi=[βi1,βi2,...,βim]T
是第



i
个隐层单元的输出权重。



wixj
表示



wi




xj
的内积。

1.学习目标

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



j=1N||ojtj||=0

即存在



wi




xj




bi
使得:




i=1Lβig(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×Lβ=β1TβLTL×m T=t1TtNTN×m

为了能够训练单隐层神经网络,我们希望得到



wi^




bi^




βi^
,使得




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

其中,



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




E=j=1N||i=1Lβig(wixj+bi)tj||22

2.学习方法

传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重

wi
和隐层的偏置

bi
被随机确定,隐层的输出矩阵

H
就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统:

Hβ=T
。并且输出权重可以被确定



β^=HT

其中,



H
是矩阵



H




MoorePenrose
广义逆矩阵。且可证明求得的解



β^
的范数是最小的并且唯一。


实现代码

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

输入的训练数据,格式为一个

N×(1+n)
矩阵,其中每行代表一个样本(共有

N
行)。每行的第一个元素为该样本的“回归的期望值”或“分类的类别号”(对应于

tj
),后面的n个元素为该样本的输入数据(对应于

xjRn
)。测试数据的格式也类似。

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

[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.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • LLDP 协议

    LLDP 协议LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)就是用于这个目的的协议。LLDP定义在802.1ab中,它是一个二层协议,它提供了一种标准的链路层发现方式。LLDP协议使得接入网络的一台设备可以将其主要的能力,管理地址,设备标识,接口标识等信息发送给接入同一个局域网络的其它设备。当一个设备从网络中接收到其它设备的这些信息时,它就将这些信息以MIB的形式存储起来。这些MIB信息可用于发现设备的物理拓扑结构以及管理配置信息。需要注意的是LLDP仅仅被设计用于进行信息通告,..

  • 《图解HTTP》读书笔记建议收藏

    《图解HTTP》对HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。

    2021年12月18日
  • p2p流媒体技术(简述流媒体的特点)

    【前言】今天发现二哥在搞流媒体,顿时来了兴趣(之前在考试维护的时候经常听老师说P2P等),追问之下之前林哥搞成功过,而且写了一系列博客;于是乎便翻开博客,认真看了看,写的非常不错:从概念到安装实现(linux和windows)再到性能测试对比非常不错(详见:http://blog.csdn.net/u012407484/article/category/2732453);…

  • 【2020】DBus,一个更能满足企业需求的大数据采集平台「建议收藏」

    【2020】DBus,一个更能满足企业需求的大数据采集平台「建议收藏」功能远超Sqoop、DataX、Flume、Logatash、Filebeat等采集工具深知其他组件的局限性,才能彰显DBus的优越感当前有很多数据采集工具(Sqoop、DataX、Flume、Logatash、Filebeat等),他们或多或少都存在一些局限性。一个共性问题是缺乏统一的数据源端管控,所以也就无法找到统一的数据入口,那后续处理元数据或者血缘分析会异…

  • 如何用matlab画函数图_matlab常用画图函数

    如何用matlab画函数图_matlab常用画图函数数学建模常用matlab工具(代码)画图画图散点图:scatter(X,Y,S)S确定每个标记的面积。S可以是与X和Y相同长度的矢量或标量。如果S为空,则使用默认大小,如果S是标量,则MATLAB绘制所有标记的大小相同。如果S是矢量,则分别对应为X、Y所确定圆的大小;scatter([11121314],[14152627],[202510038])…

  • pycharm的安装选项_tomcat环境配置

    pycharm的安装选项_tomcat环境配置pycharm安装以及其环境的配置说明此次我们使用win10系统安装pycharm的64位社区版,并且对Anaconda3中自带的Python3进行环境的配置,如果您没有Anaconda3甚至是没有Python3环境,可以参考Anaconda3安装教程及说明,如果您的pip源未更改,这里推荐您改为使用国内的pip源,这样可以更快的下载组件,方法见修改pip源至国内镜像网站。教程从开始菜单中找到你的AnacondaPrompt并打开…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号