极限学习机

**極限學習機**（英文：Extreme Learning Machines，縮寫 ELM），又名**超限學習機**，為人工智慧機器學習領域中的一種人工神經網路模型，是一種求解單隱層前饋神經網路的學習演算法。極限學習機是用於分類、回歸、聚類、稀疏逼近、壓縮和特徵學習的前饋神經網絡，具有單層或多層隱層節點，其中隱層節點的參數（不僅僅是將輸入連接到隱層節點的權重）不需要被調整。這些隱層節點可以隨機分配並且不必再更新（即它們是隨機投影但具有非線性變換），或者可以從其祖先繼承下來而不被更改。在大多數情況下，隱層節點的輸出權重通常是一步學習的，這本質上相當於學習一個線性模型。「超限學習機」（ELM）的名稱是由其主要發明者黃廣斌教授及其他學者共同商議後賦予此類模型的。

據其發明者稱，這些模型能夠產生良好的泛化性能，並且比使用反向傳播訓練的網絡快數千倍。研究表明這些模型在分類和回歸應用中一般都可以勝過 Support Vector Machines (SVM, 支持向量機)。 

## 歷史

2001-2010 年，ELM 研究主要集中在「廣義」單隱層前饋神經網路（Single-Hidden-Layer Feedforward Networks, SLFNs）的統一學習框架，包括但不限於 Sigmoid 網路、Radial Basis Function (RBF) 網路、閾值網路、三角網路、模糊推理系統、傅立葉級數 、 拉普拉斯變換、小波網路等。這些年取得的主要成果之一是在理論上成功地證明了 ELM 的通用逼近和分類能力 

從 2010 年到 2015 年，ELM 研究擴展到統一的學習框架，統一了核學習（Kernel Learning）的、SVM 和一些典型的特徵學習方法，如主成分分析 (Principal Component Analysis, PCA) 和非負矩陣分解 (Non-Matrix Factorization, NMF)。研究表明，與 ELM 相比，SVM 實際上提供了次優解決方案。ELM 可以提供白盒（White-Box）內核映射，這是通過 ELM 隨機特徵映射實現的，而不是 SVM 中使用的黑盒（Black-Box）內核。 PCA 和 NMF 可以被視為 ELM 的隱層使用線性節點的特殊情況。 

從 2015 年到 2017 年，越來越多的 ELM 研究開始聚焦於多層實現 。此外，自 2011 年以來，ELM 理論得到越來越多的生物學研究發現的驗證。 

從 2017 年開始，為了克服訓練 LU 分解過程中的低收斂問題，基於 Hessenberg 分解和 QR 分解的正則化方法開始受到關注 

2017 年，Google Scholar 在其「經典論文：過去 10 年時間考驗的文章」，有兩篇 ELM 論文被列入「2006 年人工智慧前 10 名」，分別排名第 2 和第 7 位。

## 特點

傳統的前饋神經網絡（如 BP 神經網絡）需要人為設置大量的網絡訓練參數，此算法卻只需要設定網絡的結構，而不需設置其他參數，因此具有簡單易用的特點。其輸入層到隱藏層的權值是一次隨機確定的，算法執行過程中不需要再調整，而隱藏層到輸出層的權值只需解一個線性方程組來確定，因此可以提升計算速度。

## 開發

極限學習機的名稱來自新加坡南洋理工大學黃廣斌教授所建立的模型。黃教授指出，此算法的泛化性能良好，且其學習速度比運用反向傳播算法訓練的速度要快上 1000 倍。

## 算法

給定一個單隱層的 ELM，假設第 $i$ 個隱層節點的輸出函數是： $h_{i}(\mathbf {x} )=G(\mathbf {a} _{i},b_{i},\mathbf {x} )$ , 其中 $\mathbf {a} _{i}$ 和 $b_{i}$ 是第 $i$ 個隱層節點的參數。有 $L$ 個隱層節點的單隱層 ELM 的輸出函數是:

 $f_{L}({\bf {x}})=\sum _{i=1}^{L}{\boldsymbol {\beta }}_{i}h_{i}({\bf {x}})$ , 其中 ${\boldsymbol {\beta }}_{i}$ 是第 $i$ 個隱層節點的輸出權值。

$$
\mathbf {h} (\mathbf {x} )=[h_{i}(\mathbf {x} ),...,h_{L}(\mathbf {x} )]$ 是 ELM 的隱層輸出映射向量。給定 $N$ 個訓練樣本，ELM 的隱層輸出映射矩陣 $\mathbf {H} $ 是： ${\bf {H}}=\left[{\begin{matrix}{\bf {h}}({\bf {x}}_{1})\\\vdots \\{\bf {h}}({\bf {x}}_{N})\end{matrix}}\right]=\left[{\begin{matrix}G({\bf {a}}_{1},b_{1},{\bf {x}}_{1})&\cdots &G({\bf {a}}_{L},b_{L},{\bf {x}}_{1})\\\vdots &\vdots &\vdots \\G({\bf {a}}_{1},b_{1},{\bf {x}}_{N})&\cdots &G({\bf {a}}_{L},b_{L},{\bf {x}}_{N})\end{matrix}}\right]
$$

期望的訓練數據目標矩陣 $\mathbf {T} $ 是: ${\bf {T}}=\left[{\begin{matrix}{\bf {t}}_{1}\\\vdots \\{\bf {t}}_{N}\end{matrix}}\right]$

一般而言，ELM 是一種正則化神經網絡，但其具有未調整的隱層映射（由隨機隱層節點、內核或其它實現形成），其目標函數為：

$$
{\text{Minimize: }}\|{\boldsymbol {\beta }}\|_{p}^{\sigma _{1}}+C\|{\bf {H}}{\boldsymbol {\beta }}-{\bf {T}}\|_{q}^{\sigma _{2}}
$$

其中 $\sigma _{1}>0,\sigma _{2}>0,p,q=0,{\frac {1}{2}},1,2,\cdots ,+\infty $ .

在 ELM 中，可以使用 $\sigma _{1}$ 、 $\sigma _{2}$ 、 $p$ 和 $q$ 的不同組合，並由此產生對應於回歸、分類、稀疏編碼、壓縮、特徵學習和聚類等的不同學習算法。

作為一個特例，最簡單的 ELM 訓練算法學習模型可以簡化為（對於單隱層 Sigmoid 神經網絡）：

$$
\mathbf {\hat {T}} =\mathbf {W} _{2}\sigma (\mathbf {W} _{1}x)
$$

其中 **W**1 是輸入層到隱層的權值（包括隱層節點的參數）， $\sigma $ 是隱層節點的輸出函數（或者常稱為激勵函數，或基函數），**W**2 是隱層到輸出層的權值（隱層的輸出權值）。ELM 算法可以表達為：

1. 隨機產生 **W**1（比如高斯噪聲）；
2. 基於最小二乘法估算 **W**2 ：

　
: $\mathbf {W} _{2}=\sigma (\mathbf {W} _{1}\mathbf {X} )^{+}\mathbf {T} $

## 結構

在大多數情況下，ELM 用於單隱層前饋網絡 (SLFN)，包括但不限於 Sigmoid 網絡、RBF 網絡、閾值網絡、模糊推理網絡、複雜神經網絡、小波網絡、傅立葉變換、拉普拉斯變換等。 由於 ELM 可以有對應於回歸、分類、稀疏編碼、壓縮、特徵學習和聚類的不同算法實現，多個 ELM 組合可以用於形成多隱層網絡、分層網絡或深度學習。

和傳統神經網絡不一樣的是 ELM 中的隱節點是一個計算元素（computing element），不需要將其視為經典神經網絡中的神經元。ELM 中的隱節點可以是經典的人工神經元、數學和信號系統中的基函數，也可以是一些隱節點形成的子網絡。

## 理論

發表研究證明了 ELM 的通用逼近和分類能力。特別是，黃廣斌和他的團隊使用了將近七年時間（2001-2008）對 ELM 的通用逼近能力理論的嚴格證明

### 通用逼近能力

理論上，任何非常量分段連續函數都可以用作 ELM 隱層節點的激活函數，這樣的激活函數不必是可微分的。如果調整隱層節點的參數可以使單隱層前饋網絡逼近任何目標函數 $f(\mathbf {x} )$ ，那麼隱層節點參數可以根據任何連續分布概率隨機生成，並且有適當的輸出權重 ${\boldsymbol {\beta }}$ 使得 $\ lim_{L\rightarrow \infty }\left\|\sum _{i=1}^{L}{\boldsymbol {\beta }}_{i}h_{i}({\bf {x}})-f({\bf {x}})\right\|=0$ 成立的概率為 1。

### 通用分類能力

給定任何非常量分段連續函數作為 SLFNs 中的激活函數，如果調整隱層節點的參數可以使 SLFNs 逼近任何目標函數 $f(\mathbf {x} )$ ，那麼具有隨機隱層映射的 SLFNs $\mathbf {h} (\mathbf {x} )$ 可以分開任意形狀的任意不相交區域。

## 神經元（基函數）

ELM 隱層節點可以使用廣泛的非常量分段連續函數 $G(\mathbf {a} ,b,\mathbf {x} )$ 做為輸出函數（從數值分析上講，基函數）：

### 實數域

Sigmoid function: $G(\mathbf {a} ,b,\mathbf {x} )={\frac {1}{1+\exp(-(\mathbf {a} \cdot \mathbf {x} +b))}}$

Fourier function: $G(\mathbf {a} ,b,\mathbf {x} )=\sin(\mathbf {a} \cdot \mathbf {x} +b)$

Hardlimit function: $G(\mathbf {a} ,b,\mathbf {x} )={\begin{cases}1,&{\text{if }}{\bf {a}}\cdot {\bf {x}}-b\geq 0\\0,&{\text{otherwise}}\end{cases}}$

Gaussian function: $G(\mathbf {a} ,b,\mathbf {x} )=\exp(-b\|\mathbf {x} -\mathbf {a} \|^{2})$

Multiquadrics function: $G(\mathbf {a} ,b,\mathbf {x} )=(\|\mathbf {x} -\mathbf {a} \|^{2}+b^{2})^{1/2}$

Wavelet: $G(\mathbf {a} ,b,\mathbf {x} )=\|a\|^{-1/2}\Psi \left({\frac {\mathbf {x} -\mathbf {a} }{b}}\right)$ ，其中 $\Psi $ 是單母小波函數.

### 複數域

Circular functions:

$$
\tan(z)={\frac {e^{iz}-e^{-iz}}{i(e^{iz}+e^{-iz})}}
$$

$$
\sin(z)={\frac {e^{iz}-e^{-iz}}{2i}}
$$

Inverse circular functions:

$$
\arctan(z)=\int _{0}^{z}{\frac {dt}{1+t^{2}}}
$$

$$
\arccos(z)=\int _{0}^{z}{\frac {dt}{(1-t^{2})^{1/2}}}
$$

Hyperbolic functions:

$$
\tanh(z)={\frac {e^{z}-e^{-z}}{e^{z}+e^{-z}}}
$$

$$
\sinh(z)={\frac {e^{z}-e^{-z}}{2}}
$$

Inverse hyperbolic functions:

$$
{\text{arctanh}}(z)=\int _{0}^{z}{\frac {dt}{1-t^{2}}}
$$

$$
{\text{arcsinh}}(z)=\int _{0}^{z}{\frac {dt}{(1+t^{2})^{1/2}}}
$$

## 參見

* 機器學習
* 前饋神經網絡
* 人工神經網絡

## 參考資料

## 外部連結

* ELM 入口網站附原始碼、未決難題、ELM 會議、教程、參考資料等 （頁面存檔備份，存於網際網路檔案館）
* ELM 的 R 程序包 （頁面存檔備份，存於網際網路檔案館）
* GitHub 上的 ELM 開源程序（Python）
* GitHub 上的 ELM 開源程序（C++）
* GitHub 上的 ELM 開源程序（Matlab）