実践的なNN構築のための要素技術。活性化関数の選択、重み初期化戦略、正規化手法、正則化技法、最適化アルゴリズム。理論的背景と実装上の指針。
最終更新:2025年11月
活性化関数なしでは、多層ネットワークも単層の線形変換と等価。非線形活性化により表現力を獲得。
Sigmoid:
$$\sigma(x) = \frac{1}{1 + e^{-x}}$$出力範囲 $(0, 1)$。勾配消失問題。出力層の二値分類に使用。
Tanh:
$$\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$$出力範囲 $(-1, 1)$。ゼロ中心。依然として勾配消失。
ReLU(Rectified Linear Unit):
$$\text{ReLU}(x) = \max(0, x)$$勾配消失を軽減。計算効率が高い。「死んだReLU」問題。
Leaky ReLU:
$$\text{LeakyReLU}(x) = \max(\alpha x, x), \quad \alpha \approx 0.01$$負の領域でも勾配を維持。
PReLU(Parametric ReLU):
$\alpha$ を学習可能なパラメータに。
ELU(Exponential Linear Unit):
$$\text{ELU}(x) = \begin{cases} x & x > 0 \\ \alpha(e^x - 1) & x \leq 0 \end{cases}$$負の値で滑らか。ゼロ中心に近づく。
主要論文:
GELU(Gaussian Error Linear Unit):
$$\text{GELU}(x) = x \cdot \Phi(x)$$$\Phi$ は標準正規分布のCDF。BERT、GPT等で標準。確率的な滑らかなゲーティング。
SiLU / Swish:
$$\text{SiLU}(x) = x \cdot \sigma(x)$$自己ゲート。GELUと類似の性能。
Mish:
$$\text{Mish}(x) = x \cdot \tanh(\text{softplus}(x))$$主要論文:
不適切な初期化は勾配消失・爆発を引き起こす。各層の活性化と勾配の分散を維持することが目標。
Sigmoid/Tanh向け。入力・出力ユニット数の平均で分散を調整。
$$W \sim \mathcal{N}\left(0, \frac{2}{n_{in} + n_{out}}\right)$$または一様分布:$W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{in} + n_{out}}}, \sqrt{\frac{6}{n_{in} + n_{out}}}\right)$
主要論文:
ReLU向け。ReLUが半分のニューロンを無効化することを考慮。
$$W \sim \mathcal{N}\left(0, \frac{2}{n_{in}}\right)$$主要論文:
GPT系では残差接続のスケーリング $1/\sqrt{N}$($N$は層数)を使用。深いネットワークの安定化。
ミニバッチ統計量で正規化。訓練の高速化・安定化。
$$\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}$$ $$y_i = \gamma \hat{x}_i + \beta$$効果:学習率を上げられる、初期化への依存軽減、正則化効果
課題:バッチサイズ依存、RNNでの適用困難
主要論文:
特徴次元で正規化。バッチサイズに依存しない。Transformerの標準。
$$\hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}}, \quad \mu = \frac{1}{H}\sum_i x_i$$主要論文:
Group Normalization:
チャネルをグループ化して正規化。小バッチでも安定。CNNで有効。
Instance Normalization:
各サンプル・各チャネルで正規化。スタイル転送で使用。
RMSNorm:
平均の計算を省略。計算効率向上。LLaMA等で採用。
$$\hat{x} = \frac{x}{\sqrt{\frac{1}{n}\sum_i x_i^2 + \epsilon}}$$主要論文:
Post-LN(オリジナルTransformer):残差接続後に正規化。勾配問題あり。
Pre-LN(GPT-2以降):残差接続前に正規化。訓練が安定。現在の標準。
損失関数に重みのノルムを追加。
$$L_{total} = L + \lambda \|w\|_2^2$$AdamWではweight decayを勾配更新と分離。
訓練時にランダムにユニットを無効化。アンサンブル効果。
$$y = \frac{1}{1-p} \cdot x \cdot m, \quad m_i \sim \text{Bernoulli}(1-p)$$推論時は全ユニットを使用(スケーリング済み)。
変種:
主要論文:
訓練データを人工的に拡張。暗黙的な正則化。
画像:回転、反転、クロップ、色変換、MixUp、CutMix、RandAugment
テキスト:Back-translation、Token置換、EDA
主要論文:
検証損失が改善しなくなったら訓練を停止。暗黙的な正則化効果。
Vanilla SGD:
$$\theta_{t+1} = \theta_t - \eta \nabla L(\theta_t)$$Momentum:
$$v_{t+1} = \mu v_t + \nabla L(\theta_t)$$ $$\theta_{t+1} = \theta_t - \eta v_{t+1}$$振動を抑え、収束を加速。$\mu \approx 0.9$ が一般的。
Nesterov Momentum:
先読み勾配。より速い収束。
Adam:
$$m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t$$ $$v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2$$ $$\hat{m}_t = m_t / (1-\beta_1^t), \quad \hat{v}_t = v_t / (1-\beta_2^t)$$ $$\theta_{t+1} = \theta_t - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}$$デフォルト:$\beta_1=0.9$, $\beta_2=0.999$, $\epsilon=10^{-8}$
AdamW:
Weight decayを正しく分離。LLM訓練の標準。
主要論文:
主要論文:
勾配爆発の防止。RNN、Transformer訓練で必須。
$$g \leftarrow \min\left(1, \frac{c}{\|g\|}\right) g$$$c$ はクリップ閾値(通常1.0)。
勾配の直接伝播。深いネットワークの訓練を可能に。
$$y = F(x) + x$$ResNet(加算)、DenseNet(連結)。