# [原]简单易学的机器学习算法——极限学习机(ELM)

2014-4-24阅读10858 评论23

# 一、极限学习机的概念

极限学习机(Extreme Learning Machine) ELM，是由黄广斌提出来的求解单隐层神经网络的算法。

ELM最大的特点是对于传统的神经网络，尤其是单隐层前馈神经网络(SLFNs)，在保证学习精度的前提下比传统的学习算法速度更快。

# 二、极限学习机的原理

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

(选自黄广斌老师的PPT)

$\sum_{i=1}^{L}\beta&space;_ig\left&space;(&space;W_i\cdot&space;X_j+b_i&space;\right&space;)=o_j,\;&space;j=1,\cdots,N$

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

$\sum_{j=1}^{N}\left&space;\|&space;o_j-t_j&space;\right&space;\|=0$

$\sum_{i=1}^{L}\beta&space;_ig\left&space;(W_i\cdot&space;X&space;_j+b&space;_i\right&space;)=t&space;_j,\;&space;j=1,\cdots,N$

$H\beta&space;=T$

$H\left&space;(&space;W_1,\cdots,W_L,b_1,\cdots,b_L,X_1,\cdots,X_L&space;\right&space;)$

$=&space;\begin{bmatrix}&space;g\left&space;(&space;W_1\cdot&space;X_1+b_1&space;\right&space;)&space;&&space;\cdots&space;&&space;g\left&space;(&space;W_L\cdot&space;X_1+b_L&space;\right&space;)\\&space;\vdots&space;&&space;\cdots&space;&&space;\vdots\\&space;g\left&space;(&space;W_1\cdot&space;X_N+b_1&space;\right&space;)&space;&&space;\cdots&space;&&space;g\left&space;(&space;W_L\cdot&space;X_N+b_L&space;\right&space;)&space;\end{bmatrix}_{N\times L}$

$\beta&space;=\begin{bmatrix}&space;\beta^{T}&space;_1\\&space;\vdots&space;\\&space;\beta^{T}&space;_L&space;\end{bmatrix}_{L\times&space;m}$$T&space;=\begin{bmatrix}&space;T^{T}&space;_1\\&space;\vdots&space;\\&space;T^{T}&space;_N&space;\end{bmatrix}_{N\times&space;m}$

$\left&space;\|&space;H\left&space;(&space;\hat{W_i},\hat{b_i}&space;\right&space;)&space;\hat{\beta&space;_i}-T\right&space;\|=\underset{W,b,\beta}{min}&space;\left&space;\|&space;H\left&space;(&space;W_i,b_i\right&space;)\beta_i-T&space;\right&space;\|$

$E=\sum_{j=1}^{N}\left&space;(&space;\sum_{i=1}^{L}\beta_i&space;g\left&space;(&space;W_i\cdot&space;X_j&space;+&space;b_i&space;\right&space;)-t_j&space;\right&space;)^2$

$\hat{\beta}=H^{\dagger&space;}T$

# 三、实验

我们使用简单易学的机器学习算法——Logistic回归》中的实验数据。

$errorRate=\frac{NumError}{NumAll}$

MATLAB代码

%% 主函数，二分类问题

%导入数据集

data = A(:,1:2);%特征
label = A(:,3);%标签

[N,n] = size(data);

L = 100;%隐层节点个数
m = 2;%要分的类别数

%--初始化权重和偏置矩阵
W = rand(n,L)*2-1;
b_1 = rand(1,L);
ind = ones(N,1);
b = b_1(ind,:);%扩充成N*L的矩阵

tempH = data*W+b;
H = g(tempH);%得到H

%对输出做处理
temp_T=zeros(N,m);
for i = 1:N
if label(i,:) == 0
temp_T(i,1) = 1;
else
temp_T(i,2) = 1;
end
end
T = temp_T*2-1;

outputWeight = pinv(H)*T;

%--画出图形
x_1 = data(:,1);
x_2 = data(:,2);
hold on
for i = 1 : N
if label(i,:) == 0
plot(x_1(i,:),x_2(i,:),'.g');
else
plot(x_1(i,:),x_2(i,:),'.r');
end
end

output = H * outputWeight;
%---计算错误率
tempCorrect=0;
for i = 1:N
[maxNum,index] = max(output(i,:));
index = index-1;
if index == label(i,:);
tempCorrect = tempCorrect+1;
end
end

errorRate = 1-tempCorrect./N;


function [ H ] = g( X )
H = 1 ./ (1 + exp(-X));
end


• 本文已收录于以下专栏：

## java基础概述——java基础

Java是SUN（StanfordUniversity Network,斯坦福大学网络公司） Java之父 -- 詹姆斯·高斯林（James Gosling） 1995...
• zj3911507
• 2014年06月25日 10:48
• 325

## 简单易学的机器学习算法——极限学习机(ELM)

• 2014年04月24日 11:56
• 64878

## 简单易学的机器学习算法——Logistic回归

• 2014年05月12日 11:10
• 9775

## 机器学习算法系列（一）--决策树

1、什么是决策树 决策树(Decision Tree）是在已知各种情况发生概率的基础上，通过构成决策树来求取净现值的期望值大于等于零的概率，评价项目风险，判断其可行性的决策分析方法，是直观运用概率分析...
• fengxueniu
• 2017年06月26日 20:58
• 274

## 机器学习23-密度聚类DBSCAN算法

• xinzhi8
• 2017年06月29日 15:07
• 250

## elm学习总结

• he_min
• 2015年08月29日 16:23
• 2615

## 机器学习___ELM

• neu_chenguangq
• 2015年04月17日 21:16
• 1470

## angular初体验（简单易学，适合新手）

• u014326381
• 2015年08月20日 15:30
• 1363

## ELM（Extreme Learning Machine）:超限学习机

• Mosout
• 2017年01月03日 18:59
• 1598

## 转载 elm中文手册

elm-lang 的中文手冊翻譯自 http://elm-lang.org/https://github.com/elm-lang/elm-compiler前言介紹函數式編程 (Functional...
• pdsgr1996
• 2017年06月06日 22:01
• 491

举报原因： 您举报文章：简单易学ELM 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)