Extreme Learning Machine

  • 9
    いいね
  • 0
    コメント

特徴ベクトルにランダム行列を掛けた結果をニューラルネットワークの中間層にして、線形回帰・分類する。

回帰

$N$ 個の教師データ $\{(\vec{x}_{i}, t_{i})\}_{i=1}^{N}$ を用意する。ただし $\vec{x}_{i}$ は $d$ 次元素性ベクトル、$t_{i}$ はスカラー値。

活性関数 $g$ と隠れノード数 $L$ をモデル化する (適当に選ぶ)。

活性関数

  • $g_{\vec{a}, b}(\vec{x}) = \frac{1}{1+\exp(-z)}$
  • $g_{\vec{a}, b}(\vec{x}) = \sin(z)$
  • $g_{\vec{a}, b}(\vec{x}) = \sqrt{|\vec{x}-\vec{a}|^2 + b^2}$
  • $g_{\vec{a}, b}(\vec{x}) = \exp\left(-\frac{|\vec{x}-\vec{a}|^2}{b^2}\right)$

ここで、$z = \vec{x}^{\top} \vec{a} + b$ である。

アルゴリズム

  1. $L$ 個の $d$ 次元ベクトル $\vec{a}_{j}$ と、スカラー値 $b_{j}$ をランダムに設定する。
  2. $H_{i,j} = g_{\vec{a}_{j}, b_{j}}(\vec{x}_{i})$ と $N$ 行 $L$ 列の行列をつくる。
  3. $\vec{w} = H^{+} \vec{t}$ で重みを求める。ここで、$H^{+}$ は $H$ の疑似逆行列で、$\vec{w}$ は $L$ 次元ベクトル。
  4. $f(\vec{x}) = \vec{w}^{\top} \vec{g}_{\vec{a}, b}(\vec{x})$ で予測する

重みの計算

$H^{+}$ の求め方は 2 パターンあるので以下に示す。

N > L のとき

\begin{align}
                         H \vec{w} &=                            \vec{t} \\
\Leftrightarrow H^{\top} H \vec{w} &=                   H^{\top} \vec{t} \\
\Leftrightarrow            \vec{w} &= (H^{\top} H)^{-1} H^{\top} \vec{t} \\
\end{align}

より

  1. $A = H^{\top} H$
  2. $b = H^{\top}$
  3. $A w = b$ を解く。

とすればいい。

L < N のとき

$w = H^{\top} y$ と置くとすると、

\begin{align}
                H          w &=                            t \\
\Leftrightarrow H H^{\top} y &=                            t \\
\Leftrightarrow            y &=          (H H^{\top})^{-1} t \\
\Leftrightarrow            w &= H^{\top} (H H^{\top})^{-1} t \\
\end{align}

より

  1. $A = H H^{\top}$
  2. $A y = t$ を解く。
  3. $w = H^{\top} y$

とすればいい。

利点

  • 任意の活性関数を使える!
  • 学習が疑似逆行列一発!
    • カーネル法と組み合わせてもいい (N > L のとき)。
  • 分類でも既存の SVM と組み合わせればおk

欠点

  • $a$ と $b$ をどう設定する?
  • $L$ のサイズはどれくらい?

参考文献

  1. Extreme learning machine
  2. Wentao Zhu et al., "Constrained extreme learning machines."