コードを使用した粘菌アルゴリズムに基づくエクストリーム ラーニング マシン (ELM) 回帰予測

粘菌アルゴリズムに基づくエクストリーム ラーニング マシン (ELM) 回帰予測


要約: この論文では、粘菌アルゴリズムを使用して極端な学習マシンを最適化し、回帰予測に使用します。

1. 極限学習機の原理概要

典型的な単一の隠れ層フィードフォワード ニューラル ネットワーク構造を図 1 に示します.これは、入力層、隠れ層、および出力層で構成されます.入力層と隠れ層のニューロン、および隠れ層と隠れ層の間のニューロン出力層は完全に接続されています。このうち、入力層には n 個の入力変数に対応する n 個のニューロンがあり、隠れ層には l 個のニューロンがあり、出力層には m 個の出力変数に対応する m 個のニューロンがあります。一般性を失うことなく、入力層と隠れ層の間の結合の重み w を次のようにします:
w = [ w 11 w 12 . . . w 1 , nw 21 w 22 . . w 2 n . . . wl 1 wl 2 . . . wln ] (1) w =\left[\begin{matrix}w_{11}&w_{12}&...&w_{1,n}\\ w_{21}&w_{22}&.. . &w_{2n}\\ ...\\ w_{l1}&w_{l2}&...&w_{ln} \end{行列}\right]\tag{1}w= w11w21...wl 1w12w22wl 2.........w1 , nw2n _wln _ (1)
其中, w n w_n wn入力層iiを示しますiニューロンと隠れ層jjj 個のニューロン間の接続の重み。

隠れ層と出力層の間の結合の重みをβ \betaとするβ :
β = [ β 11 β . . . . . . . . β 1 m β 21 β . . . . . . . . β2m . . . . . . . . β l 1 β l . . . . . . . . β lm ] (2) \beta =\left[\begin{matrix} \beta_{11}&\beta_{12}&...&\beta_{1m}\\ \beta_{21}&\beta_{22 }&...&\beta_{2m}\\ ...\\ \beta_{l1}&\beta_{l2}&...&\beta_{lm} \end{行列}\right] \tag{ 2}b= b11b21...bl 1b12b22bl 2.........b1メートルb2メートルb ( 2 )
その中でβ jk \beta_{jk}bJK隠れ層の j 番目のニューロンと出力層の k 番目のニューロンの間の結合の重みを示します。

隠れ層ニューロンのしきい値 b を次のようにします:
b = [ b 1 b 2 . . . bl ] (3) b =\left[\begin{matrix}b_1\\ b_2\\ ...\\ b_l \ end {マトリックス}\右]\タグ{3}b= b1b2...bl ( 3 )
Q サンプルのトレーニング セットの入力行列 X と出力行列 Y を
X = [ x 11 x 12 . . . x 1 Q x 21 x 22 . . . x 2 Q . . . xn 1 xn 2 とする。 . . . xn Q ] (4) X =\left[\begin{matrix}x_{11}&x_{12}&...&x_{1Q}\\ x_{21}&x_{22}&...&x_ {2Q}\\ ...\\ x_{n1}&x_{n2}&...&x_{nQ} \end{行列}\right]\tag{4}バツ= バツ11バツ21...バツn 1バツ12バツ22バツn 2.........バツ1Q _バツ2Q _バツnQ _ ( 4 )

KaTeX 解析エラー: 未定義の制御シーケンス: \matrix at position 11: Y =\left[\̲m̲a̲t̲r̲i̲x̲{y_{11},y_{12},…

隠れ層のニューロンの活性化関数を g(x) とすると、図 1 から、ネットワークの出力 Tは T = [ t 1 , . . , t Q ] m ∗ Q , tj となります。
= [ t 1 j , . . , tmj ] T = [ ∑ i = 1 t β i 1 g ( wixj + bi ) ∑ i = 1 t β i 2 g ( wixj + bi ) . . . ∑ i = 1 t β img ( wixj + bi ) ] m ∗ 1 , ( j = 1 , 2 , . . , Q ) (6) T = [t_1,..,t_Q]_{m*Q},t_j = [t_ {1j},. ..,t_{mj}]^T =\left[\begin{matrix}\sum_{i=1}^t\beta_{i1}g(w_ix_j + b_i)\\ \sum_{i =1}^t \beta_{i2}g(w_ix_j + b_i)\\ ...\\ \sum_{i=1}^t\beta_{im}g(w_ix_j + b_i) \end{matrix}\right ]_{m* 1},(j=1,2,...,Q)\タグ{6}T=[ t1.. tQ]m Qt=[ t1... ,tmj]T= 私は= 1tb私は1g ( wバツ+b)私は= 1tb私は2g ( wバツ+b)...私は= 1tbイムg ( wバツ+b) m 1( j=1 2 ... ,Q )( 6 )
式 (6) は次のように表すことができます:
H β = T ' (7) H\beta = T' \tag{7}_=T '( 7 )
このうち、T' は行列 T の転置、H はニューラル ネットワークの隠れ層出力行列と呼ばれ、具体的な形式は次のとおりです
。 , . . , bl , x 1 , . . . , x Q ) = [ g ( w 1 * x 1 + b 1 ) g ( w 2 * x 1 + b 2 ) . . . g ( wl * x 1 + bl ) g ( w 1 * x 2 + b 1 ) g ( w 2 * x 2 + b 2 ) . . g ( wl * x 2 + bl ) . . . g ( w 1 * x Q + b 1 ) g ( w 2 ∗ x Q + b 2 ) . . . g ( wl ∗ x Q + bl ) ] Q ∗ l H(w_1,...,w_i,b_1,...,b_l,x_1,.. .,x_Q) =\left [\begin{行列} g(w_1*x_1 + b_1)&g(w_2*x_1 + b_2)&...&g(w_l*x_1 + b_l)\\ g(w_1*x_2 + b_1 )&g(w_2*x_2 + b_2)&...&g(w_l*x_2 + b_l)\\ ...\\ g(w_1*x_Q + b_1)&g(w_2*x_Q + b_2)&...&g( w_l*x_Q + b_l) \ end{行列}\right]_{Q*l}H ( w1... ,wb1... ,blバツ1... ,バツQ)= g ( w1バツ1+b1)g ( w1バツ2+b1)...g ( w1バツQ+b1)g ( w2バツ1+b2)g ( w2バツ2+b2)g ( w2バツQ+b2).........g ( wlバツ1+bl)g ( wlバツ2+bl)g ( wlバツQ+bl) Q * l

2.ELM学習アルゴリズム

前の分析から、ELM はトレーニングの前に w と b をランダムに生成できることがわかり、隠れ層のニューロンの数と、隠れ層とニューロンの活性化関数 (無限に微分可能) を決定するだけで、β\ を計算できます\ベータベータ版具体的には、ELM の学習アルゴリズムには主に次のステップがあります。

(1) 隠れ層のニューロン数を決定し、入力層と隠れ層の間の接続重み w と隠れ層ニューロンのバイアス b をランダムに設定します。

(2) 中間層ニューロンの活性化関数として無限微分可能な関数を選択し、中間層出力行列 H を計算します。

(3) 出力層の重みを計算します: β = H + T ' \beta = H^+T'b=H+ T

関連する研究結果は、ELM で多くの非線形活性化関数 (シグモイド関数、正弦関数、複合関数など) を使用できるだけでなく、微分不可能な関数、さらには不連続関数を活性化機能。

3. 回帰問題のデータ処理

トレーニング セットとテスト セットはランダムな方法で生成され、トレーニング セットには 1900 サンプルが含まれ、テスト セットには 100 サンプルが含まれます。モデルのパフォーマンスに対する変数の大きな分散の影響を減らすために、モデルを構築する前にデータを正規化します。

4. 粘菌アルゴリズムに基づいて最適化されたELM

粘菌アルゴリズムの具体的な原理は、ブログを参照してください: https://blog.csdn.net/u011835903/article/details/113710762

前述からわかるように、ELMの初期の重みとしきい値はランダムに生成されます。毎回生成される初期の重みとしきい値はフルスケールです。このホワイト ペーパーでは、粘菌アルゴリズムを使用して、初期の重みとしきい値を最適化します。フィットネス関数は、トレーニング セットの誤差の MSE として設計されています。
フィットネス_ _ _ _=a r g( MS Eプリデクト_ _ _ _ _)

フィットネス関数は、トレーニング後に MSE エラーを選択します。MSE エラーが小さいほど、予測データと元のデータの一致度が高くなります。最終的な最適化の出力は、最適な初期の重みとしきい値です。次に、最適な初期重みしきい値でトレーニングされたネットワークが、テスト データ セットでテストされます。

5. 試験結果

粘菌アルゴリズムの関連パラメータは次のとおりです。

%训练数据相关尺寸
R = size(Pn_train,1);
S = size(Tn_train,1);
N = 20;%隐含层个数
%% 定义黏菌优化参数
pop=20; %种群数量
Max_iteration=50; %  设定最大迭代次数
dim = N*R + N*S;%维度,即权值与阈值的个数
lb = [-1.*ones(1,N*R),zeros(1,N*S)];%下边界
ub = [ones(1,N*R),ones(1,N*S)];%上边界

粘菌に最適化された ELM とベースの ELM を比較します。

予測結果は下図の通り

ここに画像の説明を挿入

ベース ELM MSE エラー: 0.0020092
SMA-ELM MSE エラー: 3.6457e-11

MSEの観点からすると、粘菌-ELMは基本的なELMよりもはるかに優れています

6.参考文献

本「MATLAB Neural Network 43 ケース分析」

7.Matlab コード

おすすめ

転載: blog.csdn.net/u011835903/article/details/130473765