🚀
活性化関数は何をしているのか - Shannon Entropy から見る学習ダイナミクス (実装編)
実験設計(最小構成)
本実験では、理論的に整理した
「活性化関数が出力分布の Shannon entropy の減少ダイナミクスに与える影響」
を、できる限り単純な設定で観測することを目的とする。
データ
-
MNIST
- クラス数が固定(10)
- データ分布が安定している
- ノイズが比較的少なく、挙動が解釈しやすい
モデル
-
多層パーセプトロン(MLP)
- CNN は使用しない
- 空間構造を排除し、
活性化関数と最適化ダイナミクスの影響に集中する
活性化関数(比較対象)
- ReLU
- Tanh
- GELU
学習設定
- 損失関数:Cross Entropy Loss
-
最適化手法:SGD(確率勾配法)
- Adam などの適応的最適化は使用しない
- 勾配そのものが作るダイナミクスを観察するため
- 学習率:固定
- エポック数:20
記録する量
各エポックごとに以下を保存する:
- 出力分布
- 出力分布の Shannon entropy
- バッチ平均エントロピー
今回は考えないもの
本実験では、以下の要素は意図的に排除する:
- Validation accuracy
- 正則化
- Batch Normalization
- Dropout
- Adam などの適応的最適化手法
- Early stopping
実装時に観察するポイント
- 初期エポックにおけるエントロピーの値はどうなっているか
- エントロピーの減少は
- 線形か
- 指数的か
- 途中で停滞するか
- 活性化関数ごとに
- 初期の減少速度に差があるか
- 後半での減速の仕方に違いがあるか
本実験は、モデル性能の向上を目的とするものではなく、
学習ダイナミクスそのものを観測・理解するための基礎実験として位置づける。
Discussion