A Multiple Hidden Layers Extreme Learning Machine Method and Its Application
どんなものか
Multiple hidden layers ELM (MELM)
最初の隠しレイヤーの特徴を引き継いで形成される
残りの隠しレイヤーのパラメータは出力のエラーをゼロに近づける形で算出する
先行研究と比較してすごいところ
MELMはシンプルかつ安定したネットワーク構造とシンプルな計算プロセスを持つ
two-hidden-layer feedforward network (TLFN) と比べて高速なアルゴリズム
技術や手法の"キモ"はどこか
ELMネットワークを隠しレイヤーを追加する
1つ目のレイヤーはELMと同様にランダムにパラメータを選択する
残りのレイヤーは各隠しレイヤーの出力が期待した値に近づくようにパラメータを計算する
有効性の検証方法
https://gyazo.com/5dbb5e9c841676e30505430c22010f70
データセットを次のように定義する
$ \{X,T\} = \{x_i, t_i\} ~~~(i=1,2,..,Q)
$ X を$ Q \times N
$ Lを隠しノード数
アルゴリズム
1. 入力レイヤーと最初の隠しレイヤー間の weight $ Wと bias $ Bをランダムに初期化する
$ W は $ L \times N 行列
$ B は サイズ $ L のベクトル
2. 以下のように変数を定義する
$ W_{IE} = \begin{bmatrix} B & W \end{bmatrix}
$ X_{E} = \begin{bmatrix}1 & X\end{bmatrix}^T
3. 最初の隠しレイヤーの出力 $ HをELMと同様に求める
$ H = g(W_{IE} X_E)
$ Hは$ Q \times L行列
これは $ H = g(WX + B) と同意
4. $ Hから Regularized な $ \betaを求める
5. 次の隠しレイヤーで期待される出力を求める
$ H_1 = T\beta^+
$ \beta^+は$ \betaの疑似逆行列
6. 次の隠しレイヤーでのパラメータ $ W_1と$ B_1を求める
$ W_{HE} = \begin{bmatrix}B_1 & W_1\end{bmatrix}
$ H_E = \begin{bmatrix}1 & H\end{bmatrix}^T
$ 1はサイズ$ Qで各要素が1であるベクトル
とするとき
$ g(W_1H+B_1) = g(W_{HE}H_E) = H_1となるような$ W_1, $ B_1を求めたい
$ g^{-1}(y)を活性関数$ g(x)の逆関数とすると $ g^{-1}(H1) = W_1H+B_1 = W_{HE}H_Eとなる。つまり
$ W_{HE} = g^{-1}(H_1)H^+_E
https://gyazo.com/e3454316f863ed995a3899607b87d41b
7. 次の隠しレイヤーでの実際の出力$ H_2を求める
$ H_2 = g(W_{HE}H_E)
8. $ H_2から$ \betaを更新する
9. 隠しレイヤー数が3以上であるなら 5 〜 9 を繰り返し行う
10. 最終的な出力を求める
$ f(x) = H_2\beta
議論
Kaggle の Titanic コンペ
学習データでのスコアは高いけど、テストデータでのスコアが低い (0.5 前後)
むしろ hidden-nodes を多めにした RELM の方がスコアが高い (0.7 後半)
次に読むべき論文