1. ELM 是什么
ELM的個人理解: 單隱層的前饋人工神經網絡,特別之處在於訓練權值的算法: 在單隱層的前饋神經網絡中,輸入層到隱藏層的權值根據某種分布隨機賦予,當我們有了輸入層到隱藏層的權值之后,可以根據最小二乘法得到隱藏層到輸出層的權值,這也就是ELM的訓練模型過程。
與BP算法不同,BP算法(后向傳播算法),輸入層到隱藏層的權值,和隱藏層到輸出層的權值全部需要迭代求解(梯度下降法)

用一張老圖來說明,也就是說上圖中的Wi1,Wi2,Wi3 在超限學習機中,是隨機的,固定的,不需要迭代求解的。我們的目標只需要求解從隱藏層到輸出層的權值。毫無疑問,相對於BP算法,訓練速度大大提高了。
2. ELM 的訓練過程

在上述公式中,wi 表示輸入層到隱藏層的權值, bi表示系統偏置(bias),ß 則是我們的目標:隱藏層到輸出層的權值,N 表示訓練集的大小,oj 表示分類結果。為了無限逼近訓練數據的真實結果,我們希望分類結果與真實結果t一致,那么也就是
所以上式可以表示為
(懶了,不想用公式編輯器,TAT)
用矩陣表示,則 
其中N 表示訓練集的大小,N~ 表示隱藏層結點的數量,g(x)表示active function(激活函數?),g(x)要求無限可微。
怎么求解這個方程就成為了ELM的訓練過程,恩。
求解方法:1. 傳統的梯度下降法 (不說了,就是BP算法)
2. LS 最小二乘法方法
目標:最小化誤差
根據 Hß = T, 如果H 是一個方陣的話,ß可以直接求解為H-1T。
如果H不是, 最小誤差的ß 為
,其中H+ 為H的Moore-Penrose 廣義逆。
先寫到這里了,基本訓練過程已經搞清楚了,可是一個這么簡單的算法為什么可以work,還有待研究。。。
