第1章: ニューラルネットワーク入門
Introduction to Neural Networks
パーセプトロン
パーセプトロン(1958年、Rosenblatt)
ニューラルネットワークの最も単純な形式。入力の重み付き和を閾値で判定:
$$y = \begin{cases} 1 & \text{if } \mathbf{w}^\top \mathbf{x} + b > 0 \\ 0 & \text{otherwise} \end{cases}$$パーセプトロンの限界
パーセプトロンは直線 (高次元では超平面) でデータ空間を 2 分割するだけなので、線形分離可能な問題しか解けない。XOR (排他的論理和) のように直線では分離できないパターンは扱えない。
1969 年、Minsky と Papert は著書『Perceptrons』でこの限界を厳密に証明し、以後の研究停滞 (「AI の冬」) を招いた。1986 年に誤差逆伝播法 (Rumelhart et al.) によって多層ネットの学習が現実的になり、ようやく XOR を含む非線形問題が扱えるようになった。
多層パーセプトロン(MLP)
多層パーセプトロン
複数の層を重ねたニューラルネットワーク。非線形関数の合成により複雑な関数を表現。
順伝播(Forward Propagation)
第 $l$ 層の出力:
$$\mathbf{h}^{(l)} = \sigma(\mathbf{W}^{(l)} \mathbf{h}^{(l-1)} + \mathbf{b}^{(l)})$$- $\mathbf{W}^{(l)}$:第 $l$ 層の重み行列
- $\mathbf{b}^{(l)}$:第 $l$ 層のバイアスベクトル
- $\sigma$:活性化関数
万能近似定理
1 つの隠れ層を持つ MLP は、十分なユニット数があれば任意の連続関数を任意の精度で近似できる (Cybenko, 1989; Hornik, 1991)。
実用上の注意:「近似できる」ことは「学習できる」ことを保証しない。また、1 隠れ層で必要なユニット数が指数関数的に増えるケースが知られている。現代の深層学習が層を重ねるのは、複数層によって同じ関数をはるかに少ないパラメータで効率的に表現できるからである。
活性化関数
活性化関数の役割
非線形性を導入。なければ多層にしても線形変換の合成(=線形)になってしまう。
活性化関数の比較
| 関数 | 出力範囲 | 特徴 |
|---|---|---|
| Sigmoid | (0, 1) | 確率出力に便利。勾配消失しやすい |
| tanh | (-1, 1) | 0中心。Sigmoidより勾配が大きい |
| ReLU | [0, ∞) | 計算が速い。Dead ReLU問題 |
| Leaky ReLU | (-∞, ∞) | Dead ReLU問題を緩和 |
ReLUが人気の理由
- 計算が速い:max(0, z) だけ
- 勾配消失しにくい:正の領域で勾配が1
- スパース性:約半分のユニットが0(効率的)
Dead ReLU 問題とは
ReLU は負の入力に対して常に 0 を返し、勾配も 0 になる。学習中に大きな負の勾配で重みが更新され、あるニューロンの入力 $z$ が常に負になる状態に陥ると、そのニューロンは出力も勾配も恒久的に 0 となり、以後二度と更新されない。これを Dead ReLU 問題 (死んだ ReLU) と呼ぶ。
対策として、負の領域でも小さな勾配を残す Leaky ReLU ($\max(\alpha z, z)$, $\alpha \approx 0.01$) や PReLU (傾き $\alpha$ を学習)、ELU などが提案されている。学習率を下げることや、Glorot/He 初期化を使うことも予防に効果的。
出力層と損失関数
タスクに応じた出力層
| タスク | 出力層 | 損失関数 |
|---|---|---|
| 回帰 | 線形(恒等関数) | MSE |
| 2値分類 | Sigmoid | Binary Cross-Entropy |
| 多クラス分類 | Softmax | Cross-Entropy |
まとめ
- パーセプトロン:単一ニューロン、線形分離のみ
- MLP:複数の層、非線形関数を表現可能
- 活性化関数:非線形性を導入、ReLUが主流
- 万能近似定理:1隠れ層で任意の関数を近似可能