極限學習機簡介
極限學習機是一種簡單單層前饋神經網絡(SLFN)機器學習學習算法。理論上,極限學習機算法(ELM)傾向於提供良好的性能(學習速度極快)。
與傳統的前饋網絡學習算法(如反向傳播BP算法)不同,ELM不使用基於梯度的技術。使用此方法,所有參數都將進行一次調優。該算法不需要迭代訓練。
ELM實現
1.創建隨機權重矩陣並為輸入層設置偏差。
權重矩陣和偏差的大小為(jxk)和(1 xk),其中j是隱藏節點的數量,k是輸入節點的數量。
2.計算隱藏層輸出矩陣
初始隱藏層輸出矩陣是通過將訓練數據X與權重矩陣的轉置相乘而得出的
3.選擇激活函數
您可以選擇所需的任何激活函數。但是在此示例中,我將選擇sigmoid激活函數。
4.計算Moore-Penrose偽逆
可以使用幾種方法來計算H的Moore-Penrose廣義逆。這些方法可以包括但不限於正交投影法,正交化方法,迭代方法和奇異值分解(SVD)。
5.計算輸出權重矩陣beta
6.對機器學習測試數據集重複步驟2,創建一個新的H矩陣。之後,創建名為的結果矩陣。
數據
我們將使用sklearn的make_classification機器學習庫生成隨機分類數據。
模型
模型的Python實現如下:
測試模型
測試模型的Python實現示例如下:
Accuracy: 0.89
我們的模型得出的準確度為0.89。可以通過許多方式來改變模型性能,例如:
激活函數隱藏的神經元數數據是否歸一化最後
極限學習機器算法是神經網絡中最有效的機器學習算法之一。由於進行了非迭代訓練,因此所有參數均被調優一次,這導致較高的訓練速度