極限學習機(Elm(極限學習機器))

極限學習機(極限學習機器)

Elm(極限學習機器)一般指本詞條

本詞條是多義詞,共3個義項
更多義項 ▼ 收起列表 ▲

極限學習機(Extreme Learning Machine, ELM)或“超限學習機”是一類基於前饋神經網路(Feedforward Neuron Network, FNN)構建的機器學習系統或方法,適用於監督學習非監督學習問題。

ELM在研究中被視為一類特殊的FNN,或對FNN及其反向傳播算法的改進,其特點是隱含層節點的權重為隨機或人為給定的,且不需要更新,學習過程僅計算輸出權重。

傳統的ELM具有單隱含層,在與其它淺層學習系統,例如單層感知機(single layer perceptron)和支持向量機(Support Vector Machine, SVM)相比較時,被認為在學習速率和泛化能力方面可能具有優勢。ELM的一些改進版本通過引入自編碼器構築或堆疊隱含層獲得了深度結構,能夠進行表征學習。

ELM的套用包括計算機視覺和生物信息學,也被套用於一些地球科學環境科學中的回歸問題。

基本介紹

  • 中文名:極限學習機
  • 外文名:Extreme Learning Machine, ELM
  • 類型:機器學習算法,神經網路算法
  • 提出者:Guang-Bin Huang,Qin-Yu Zhu,Chee-Kheong Siew
  • 提出時間:2004年
  • 學科:人工智慧
  • 套用:計算機視覺,生物信息學,環境科學
歷史,結構,算法,標準算法,改進算法,擴展算法,性質與理論,有關概念與比較,評價,套用,

歷史

極限學習機(Extreme Learning Machine, ELM)在2004年由南洋理工大學的Guang-Bin Huang、Qin-Yu Zhu和Chee-Kheong Siew提出,並發表於當年的IEEE國際互動會議(IEEE International Joint Conference)中,目的是為了對反向傳播算法(Backward Probagation, BP)進行改進以提升學習效率低並簡化學習參數的設定。2006年,ELM原作者在對算法進行了進一步的測評後,將結論發表至Neurocomputing並得到了關注。
ELM提出時是為監督學習問題而設計的,但在隨後的研究中,其套用範圍得到了推廣,包括以聚類為代表的非監督學習問題,並出現了具有表征學習能力的變體和改進算法。

結構

ELM可以作為一種學習策略(例如對BP框架的改進),也可作為一類神經網路構築進行論述。對於後者,標準的ELM使用單層前饋神經網路(Single Layer Feedforward neuron Network, SLFN)的結構。具體地,SLFN的組成包括輸入層、隱含層和輸出層,其中隱含層的輸出函式具有如下定義:
這裡
為神經網路的輸入、
為輸出權重,
被稱為特徵映射或激勵函式(activation function),其作用是將輸入層的數據由其原本的空間映射到ELM的特徵空間:
式中
是特徵映射的參數,在ELM研究中也被稱為節點參數(node parameter),其中
為輸入權重(input weights)。由於ELM中輸入層至隱含層的特徵映射是隨機的或人為給定的且不進行調整,因此ELM的特徵映射是隨機的。依據通用近似定理,特徵映射可以是任意非線性的片段連續函式(piecewise continuous function),常見的有:
名稱解析式





硬限幅函式(hard limit function)


不同的隱含層節點可以有不同的映射函式,神經網路的節點也由其具有的特徵映射命名,例如Sigmoid節點、徑向基函式節點等。除上述映射函式外,SLFN的節點也可以是其它經過封裝的計算單元,例如模糊推理系統(fuzzy inference system)和其他次級神經網路。

算法

標準算法

ELM僅需求解輸出權重,因此是一個線性參數模式(linear-in-the-parameter model),其學習過程易於在全局極小值收斂。已知N組學習數據,對包含L個隱含層節點和M個輸出層節點的ELM進行學習有如下步驟:
  1. 隨機分配節點參數:在計算開始時,SLFN的節點參數會隨機生成,即節點參數與輸入數據獨立。這裡的隨機生成可以服從任意的連續機率分布(continuous probability distribution)。
  2. 計算隱含層的輸出矩陣:隱含層輸出矩陣的大小為N行L列,即行數為輸入的訓練數據個數,列數為隱含層節點數。輸出矩陣本質上即是將N個輸入數據映射至L個節點所得的結果。
  3. 求解輸出權重:隱含層的輸出權重矩陣的大小為L行M列,即行數為隱含層節點數,列數為輸出層節點數。與其他算法不同,ELM算法中,輸出層可以沒有誤差節點,ELM算法的核心是求解輸出權重使得誤差函式最小。
ELM使用的L2誤差函式(L2 loss function)有如下表示:
這裡
為輸出矩陣,
為訓練目標,
為矩陣元素的弗羅貝尼烏斯範數(Frobenius norm)。引入L2正則化項後,上式改寫為:
其中
為正則化係數(regularization coefficient)求解該誤差函式等價於嶺回歸問題,其解有如下表示:
此外奇異值分解(single value decomposition, SVD)也可用於求解權重係數:
式中
的特徵向量,
的特徵值。研究表明相對較小的權重係數能提升SLFN的穩定性和泛化能力。
這裡以Python 3為例對ELM標準算法進行編程實現:
import numpy as npimport matplotlib.pyplot as pltdef sigmoid(a, b, x):   '''   定義Sigmoid函式: g(z) = 1/(1+e^-(ax+b))   '''   return 1.0/(1+np.exp(-1.0*(x.dot(a)+b)))   def ELM_prototype(X, T, C, n, L):   '''   回歸問題的ELM標準算法   變數:X - 輸入數據;樣本數x特徵數(N*n)          :H - 輸出矩陣;樣本數x隱含層節點數(N*L)          :T - 學習目標;樣本數x輸出層節點數(N*M)          :C - 正則化係數   '''   # 隨機初始化   a = np.random.normal(0, 1, (n, L))   b = np.random.normal(0, 1)   # 使用特徵映射求解輸出矩陣   H = sigmoid(a, b, X)   # 計算輸出權重和輸出函式   HH = H.T.dot(H); HT = H.T.dot(T)   beta = np.linalg.pinv(HH+np.identity(L)/C).dot(HT)   Fl = H.dot(beta)   # 返回計算結果   return beta, Fl# 測試:構造輸入值和訓練目標(輸入變數n=2; 輸出變數m=1)x1 = np.linspace(1, 20, 150)x2 = np.linspace(-5, 5, 150)X = np.vstack([x1, x2]).TT = np.sin(x1*x2/(2*np.pi))+np.random.normal(0, 0.2, 150)# 使用ELM算法進行學習(隱含層節點數L=100; 正則化參數C=1e5)beta, Fl = ELM_prototype(X, T, C=1e5, n=2, L=100)# 繪製學習結果plt.plot(x1, T, lw=1.5, label='Training goal')plt.plot(x1, Fl, lw=3, label='ELM output')plt.legend()
ELM算法中求解輸出權重的過程中有矩陣求逆的步驟。由於映射函式的初始化是隨機的,因此在實際計算中經常出現矩陣無法求逆的現象。在理論上只要設定較大的正則化參數,需要求逆的矩陣將始終是正定矩陣,但是過大的正則化係數會影響ELM的泛化能力。一個可行的改進方案,是在映射函式隨機初始化的過程中,僅選擇能使隱含層輸出矩陣達到行滿秩或列滿秩的參數。這一改進可見於徑向基函式和Sigmoid函式中。

改進算法

動態算法
ELM中特徵映射的隨機初始化為其帶來了泛化的優勢,但也意味著相比於梯度下降算法,ELM的神經網路需要更多的節點。節點的增加帶來了計算量的增加,在訓練數據大時,冗餘的節點會額外消耗計算資源,並可能出現過擬合(overfitting)。為解決上述問題,有研究在原有ELM算法的基礎上提出了動態學習的解決方案,即在訓練過程中不斷改變隱含層節點數,以平衡經驗風險和結構風險。包含上述動態學習功能的改進包括增量式ELM(Incremental ELM, I-ELM)、雙向ELM(Bidirectional ELM, B-ELM)和自適應ELM(Adaptive ELM, A-ELM)等。
以I-ELM為例,在開始階段,SLFN會被賦予一個可容忍的最簡結構,隨後整個學習過程以疊代方式進行,每一次疊代都會隨機產生數個備選節點,而對縮國小習誤差貢獻最大的一個節點會被選中並加入SLFN中進行下一次疊代,這樣當學習誤差疊代至預先設定的精度時,SLFN中不會有多餘的節點。
一些動態算法,例如I-ELM和自適應ELM能夠使用常見的激勵函式,而且被證明和標準算法一樣,保持了SLFN的通用近似定理。
線上序列ELM
線上序列ELM(Online Sequential ELM,OS-ELM)是可以使用實時數據進行學習並更新輸出權重的ELM算法。OS-ELM的運行分為兩部分,首先,OS-ELM像ELM標準算法一樣通過給定的訓練數據計算輸出權重;隨後在線上學習的過程中,每當有新的數據塊被接收,就重新運行一次ELM並得到新的輸出權重,最後新舊輸出權重會進行組合從而完成對神經網路的更新,有些算法會在更新數據時加入遺忘函式。這裡給出一個OS-ELM的簡單例子:
輸入:學習數據
;輸出:完成學習的ELM
初始化階段:定義
;使用初始的學習數據和ELM標準算法計算輸出矩陣
和輸出權重
;定義
線上學習階段:當第
組學習數據可用時,計算新的輸出矩陣
,其中
為使用第
組學習數據獨立計算所得的輸出矩陣。最後計算新的輸出權重
,其中
偏斜與噪聲數據的改進算法
神經網路可能對訓練數據的質量和標準化程度敏感。偏斜數據難以被轉化至標準常態分配,會降低神經網路的學習效率;噪聲數據包含過多除學習目標以外的信息,會降低神經網路的泛化能力。加權ELM(Weighted ELM, W-ELM)是在分類問題中為應對偏斜數據對標準ELM進行改進的算法。加權ELM與標準算法的區別在於誤差函式的構建,標準算法中的正則化參數為一常數,而加權ELM將其修改為與輸入數據大小相同的矩陣,矩陣的元素被稱為懲罰係數(penalty coefficients)。懲罰係數能夠弱化偏斜數據中的多數成員對算法的影響。加權ELM的誤差函式可有如下表示:
式中
即為懲罰係數。在加權ELM的基礎上,有研究提出了重加權ELM(re-weighted ELM),即以疊代方式加權的ELM算法。重加權ELM被證明具有更好的穩定性,能夠解決訓練數據中的異常值問題。
噪聲數據可理解為真實數據與擾動的疊加,對擾動在ELM算法中傳播的研究表明,使用特定的方式選取映射函式和輸入權重,能夠降低輸入噪聲對輸出矩陣和輸出權重的影響。由此提出的FIR-ELM(Finite Impulse Response filte ELM)和DFT-ELM(Discrete Fourier Transform ELM)在初始化輸入層權重時使用了濾波技術,提高了算法對噪聲數據的穩定性。

擴展算法

ELM模式集合
將機器學習方法進行模式集合的方法適用於ELM。常見的模式集合方法包括取平均、投票制(voting)、疊代(boosting)等,這裡以分類問題中的投票制的ELM模式集合進行說明:
輸入:學習數據
、測試數據
個ELM;輸出:測試數據的學習結果
學習過程:使用學習數據對每個ELM進行獨立的訓練;測試過程:使用ELM對測試數據進行分類,匯總分類結果,輸出被分最多的類別。
非監督學習ELM
ELM可以通過流型正則化(manifold regularization)得到面向聚類和字元嵌入(embedding)問題的非監督ELM(unsupervised ELM, US-ELM)。具體地,US-ELM的誤差函式中加入了流型正則化項(
):
其中
是無標籤學習數據的拉普拉斯矩陣(graph Laplacian)上述最佳化問題被證明等價於一次廣義特徵值求解(Generalized Eigenvalue Problem, GEP):
輸出權重矩陣可以從第二組到第
組特徵向量中獲得:
對嵌入問題,US-ELM將直接輸出嵌入矩陣;對於聚類問題,US-ELM使用K-均值算法(k-means algorithm)對嵌入矩陣中的數據進行聚類。
具有深度結構的ELM
ELM能夠以堆疊自編碼器(stacked autoencoders)的形式得到深度結構。在進行學習時,深度ELM前端的數個隱含層使用ELM訓練堆疊自編碼器對輸入變數進行表征學習,並在最後一個隱含層中使用ELM對編碼後的特徵進行解碼。深度ELM在圖像處理等問題中的表現被證實優於ELM傳統算法。此外,在獲得深度結構後,ELM也可以僅進行特徵學習並將編碼的特徵輸出至其它算法。包含ELM的深度學習框架在計算機視覺問題,例如基於MNIST手寫字元數據的圖像分類問題中有得到嘗試。
使用ELM作為自編碼器的多層ELM使用ELM作為自編碼器的多層ELM

性質與理論

插值與泛化性質
在ELM的插值理論研究中有如下結論:給定任意無限可導的激勵函式,對於N組訓練數據
,存在隱含層節點數小於N的SLFN,在由ELM學習後,訓練誤差能逼近任意精度,且當SLFN隱含層節點數與訓練數據相同時,訓練誤差為零。這裡的激勵函式的參數
可以由服從任意連續機率分布的隨機數在ELM學習中初始化。上述結論表明,從插值角度而言,只要隱含層節點數足夠,ELM能夠使得SLFN以任意精度擬合給定的訓練數據
ELM具有泛化能力,其原因被認為是算法中對特徵映射參數的隨機初始化增強了各輸入特徵的相互獨立性,創造了一個更大的求解空間,從而有利於SLFN找到正確的目標函式進行學習。對於回歸問題,研究表明,在使用多項式函式Sigmoid函式和Nadaraya–Watson函式作為映射時,ELM較好地保持了SLFN原本的泛化能力;若使用高斯類函式作為映射,ELM的泛化能力將會降低,但使用正則化和模式集合技術能夠補償泛化能力的損失。按統計學習理論,ELM被認為具有較小的VC維(Vapnik–Chervonenkis dimension),即ELM在泛化時擁有較小的實際風險(actual risk)上限。具體地,對於包含L個無限可導特徵映射節點的ELM具有L個V-C維度,在泛化時,其
機率下的實際風險為:
式中
為訓練數據樣本數,
為V-C維度,
為訓練數據所得的經驗風險(empirical risk)
通用近似定理
ELM中SLFN的特徵映射是隨機的,但其服從通用近似定理。對回歸問題,ELM的通用近似定理可有如下表述:
對任意的非常數片段連續特徵映射
如果
空間稠密,則
,即SLFN可以無限趨近於任意連續的目標函式。這裡特徵映射序列
可以由服從任意連續機率分布隨機數在ELM學習中初始化。
ELM的通用近似定理適用於常見的激勵函式,且不要求激勵函式出處連續可導,閾值函式(threshold function)可以作為ELM的激勵函式。
對於分類問題,ELM的通用近似定理可以有如下形式:
對任意特徵映射
,如果
維實數空間
或其緊緻集
上稠密,那么隱含層包含隨機初始化
的泛化SLFN能夠區分在
上任意數量和形狀的不相交區域(disjoint region)。
ELM在分類問題上的通用近似定理表述意味著,ELM在理論上能夠無限趨近任意的決策邊界(decision boundary)。
生物學相似性
ELM被認為包含了生物學習的某些機制。例如在小鼠的實驗中,不同嗅覺信號從嗅小球(glomeruli)至嗅腦(piriform cortex)的映射被認為是分散和無差別的,即神經元對信號的加工與環境無關,這與ELM的輸入權重獨立於輸入數據和學習過程具有相似性。類似的學習機制在猴子的決策行為中也有出現。
按Huang (2014),ELM命名的含義是“超越和打破傳統機器學習與生物學習間的障礙”:
(原文)‘‘ ‘Extreme’ here means to move beyond conventional artificial learning techniques and to move toward brain alike learning. ELM aims to break the barriers between the conventional artificial learning techniques and biological learning mechanism.”
ELM與生物學習過程間的相似性被認為影響了RKS(Random Kitchen Sinks)和No-Prop(No-Propagation)等機器學習算法。

有關概念與比較

ELM在研究中可以與支持向量機(Support Vector Machine, SVM)和使用反向傳播算法(Back-Propagation, BP)的單層感知機,即BP神經網路相比較,一般性的監督學習結果表明,ELM在學習速率和泛化能力上可能具有優勢。
反向傳播算法
ELM與BP和SVM回歸(SVR)算法的比較實例ELM與BP和SVM回歸(SVR)算法的比較實例
在與BP神經網路,或反向傳播算法的比較中,ELM的學習速率是前者的十倍以上,具有效率優勢,但在誤差方面,ELM與BP的學習誤差相近,沒有顯著提升。在基於回歸問題的測試和比較研究中,ELM的學習表現可能超過BP算法,也可能略低於BP算法。
支持向量機
支持向量機是常被用於和ELM進行比較的算法,這裡列出一些兩者的不同:
ELM算法包含直接的特徵映射並且輸入層,隱含層和輸出層是連線的;SVM基於核方法(kernel method)的特徵映射是間接的,不考慮特徵在神經網路各層的連線。SVM在求解時通過構建超平面(hyperplane)對數據進行分類;而ELM的輸出層沒有誤差節點,也沒有上述過程。
ELM使用嶺回歸求解輸出權重;SVM使用最大邊距最佳化(maximal margin optimization)給出結果。ELM可以直接求解多元分類(multiclass classification);而SVM需要將多元分類轉換為二項分類(binary classification)進行求解。
按一些研究的個例分析,ELM與SVM的學習誤差相當,但ELM的計算複雜度更低要快於SVM。

評價

谷歌學術在2017年5月推出的“Classic Papers: Articles That Have Stood The Test of Time”測評活動中,與ELM有關的兩份研究被選入人工智慧領域持續受到引用的經典文獻。
對ELM原創性的爭議
機器學習領域有許多與ELM思路相當的算法,例如隨機向量連線函式(Random Vector Functional-Link, RVFL)和Schmidt等對前饋神經網路權重的隨機化實驗。因此,在ELM被提出後有觀點認為,ELM不是一種獨立的算法。並且有評論指出,ELM原作者為了凸顯其工作的獨立性而有意迴避了對其它類似研究的引用。但也有觀點認為,ELM通過發展,已成為獨立的,且包含完整理論並與其它機器學習方法相聯繫的學習系統,。
ELM與其它相關算法/概念間的關係。ELM與其它相關算法/概念間的關係。

套用

圖像處理方面,ELM被成功用於低解析度至高解析度圖像的轉化,以及遙感圖像中對下墊面類型的識別。在生物科學領域,ELM被用於預測蛋白質互動作用。地球科學領域的很多預測問題包含非線性過程且觀測數據缺乏,ELM因其泛化能力而得到套用,成功的例子包括對日河流徑流量風速乾旱指數的預測。
包含ELM算法的編程模組
HP-ELM:該模組是基於Python開發的ELM算法庫,包含GPU加速和記憶體最佳化設計,適用於處理大數據問題。HP-ELM支持LOO(Leave One Out)和分組交叉驗證(k-fold cross validation)動態選擇隱含層節點個數,可用的特徵映射包括線性函式、Sigmoid函式、雙曲正弦函式和三種徑向基函式。
Guang-Bin Huang在南洋理工大學的個人主頁上有ELM原始碼開放下載。

相關詞條

熱門詞條

聯絡我們