線形 非線形 活性化関数 ReLU Sigmoid
線形関数とは
線形関数(Linear Function)
以下の2つの性質を満たす関数 f:
1. 加法性:f(x + y) = f(x) + f(y)
2. 斉次性:f(ax) = af(x)
一般形:f(x) = ax + b(ただし厳密にはb=0のとき線形)
線形関数のグラフは直線になる。入力を2倍にすれば出力も2倍、入力を足せば出力も足される。予測可能で扱いやすいが、表現力に限界がある。
線形変換の限界
線形変換を何回合成しても、結果は線形変換のままである。
線形変換の合成
f(x) = Ax, g(x) = Bx のとき
(g ∘ f)(x) = B(Ax) = (BA)x
結果は行列 BA による線形変換。
→ 100層の線形層を重ねても、1層の線形層と同等。
これが「深さの意味がない」状態である。線形だけでは、複雑なパターンを学習できない。
非線形関数
線形でない関数、つまり曲線を描く関数を非線形関数という。非線形変換を挟むことで、線形変換の繰り返しでは表現できない複雑な関数を近似できるようになる。
活性化関数
ニューラルネットワークで使われる代表的な非線形関数。
| 名前 | 式 | 特徴 |
|---|---|---|
| Sigmoid | σ(x) = 1/(1+e⁻ˣ) | 出力が0〜1。確率として解釈可能。勾配消失問題あり。 |
| tanh | tanh(x) | 出力が-1〜1。Sigmoidより中心化。 |
| ReLU | max(0, x) | 計算が速い。現在の標準。負の入力で勾配が0。 |
| Leaky ReLU | max(0.01x, x) | 負の領域でも小さな勾配を維持。 |
| GELU | x·Φ(x) | Transformerで使用。滑らかなReLU。 |
| Softmax | eˣⁱ/Σeˣʲ | 出力の和が1。分類の最終層。 |
万能近似定理
万能近似定理(Universal Approximation Theorem)
十分な数のニューロンを持つ1層のネットワーク(+非線形活性化関数)は、任意の連続関数を任意の精度で近似できる。
→ 非線形性があれば、理論上どんな関数も表現可能。
ただし「表現可能」と「学習可能」は別。実際には深いネットワークの方が効率的に学習できることが多い。
実務での応用
WEB開発での応用
アニメーション曲線:ease-in-out などの非線形な時間関数。
スムージング:データの滑らかな補間には非線形関数が使われる。
スコアリング:線形だと極端な値が支配的に。非線形変換で調整。
AI/MLでの応用
活性化関数の選択:ReLUが一般的だが、タスクによって使い分け。
勾配消失問題:Sigmoidの飽和領域では勾配が0に近づく。ReLUで緩和。
出力層の設計:回帰なら恒等関数、2値分類ならSigmoid、多クラス分類ならSoftmax。
深掘りリンク
- Wikipedia: 活性化関数
- Wikipedia: 普遍近似定理
- 動画:3Blue1Brown「ニューラルネットワーク」シリーズ
- 次のステップ:勾配降下法、バックプロパゲーション