人工ニューラルネットワークにおいて、ノードの活性化関数は、個々の入力とその重みに基づいてノードの出力を計算する関数である。これはニューラルネットワークの中核的な構成要素であり、ニューロンを活性化するかどうかを決定し、ネットワークが複雑なパターンを学習するために必要な非線形性を導入する。非線形の活性化関数がなければ、多層ネットワークは単一の線形変換に縮退し、その表現力は著しく制限される。活性化関数は、トランスフォーマー、残差ネットワーク、畳み込みニューラルネットワークなど様々なアーキテクチャで使用され、機械学習や深層学習といった分野の中心となっている。
活性化関数の選択は、学習のダイナミクスと性能に大きな影響を与える。現代的な例としては、2012年にHintonらによって開発された音声認識モデルで使用されたロジスティック(シグモイド)関数、2012年のAlexNetコンピュータビジョンモデルと2015年のResNetモデルで使用された正規化線形ユニット(ReLU)、そして2018年のBERTモデルで使用されたReLUの滑らかなバージョンであるガウス誤差線形ユニット(GELU)が挙げられる。これらの関数は、非線形性、値域、微分可能性などの数学的性質が異なり、勾配ベースの最適化における挙動に影響を与える。
数学的性質
活性化関数は、ニューラルネットワークの学習における有効性に影響を与えるいくつかの重要な数学的性質によって特徴付けることができる。
非線形性
活性化関数が非線形である場合、2層ニューラルネットワークは普遍関数近似器であることが証明でき、コンパクトな領域上の任意の連続関数を任意の精度で近似できることを意味する。これは普遍近似定理として知られている。恒等活性化関数はこの性質を満たさない。すべての層が恒等活性化を使用する場合、ネットワーク全体は単一層モデルと等価になり、複雑な写像を学習することはできない。
値域
活性化関数の値域が有限である場合、パターン提示が限られた重みにのみ有意に影響するため、勾配ベースの学習手法はより安定する傾向がある。対照的に、値域が無限である場合、パターン提示がほとんどの重みに影響するため、学習は一般により効率的であるが、発散を防ぐために通常より小さな学習率が必要となる。例えば、シグモイド関数は有限の値域(0, 1)を持ち、ReLUは無限の値域[0, ∞)を持つ。
連続微分可能性
連続微分可能な活性化関数は、勾配ベースの最適化手法を可能にするために望ましい。ReLUはゼロにおいて連続微分可能ではないが、勾配ベースの手法は実際には機能し、デッドニューロンなどの問題を引き起こす可能性があるものの、実用上は問題ない。バイナリステップ活性化関数は0で微分可能ではなく、他の場所では勾配がゼロであるため、勾配ベースの手法では進展がない。これらの性質は性能を決定的に決定するものではないが、重要な考慮事項である。
活性化関数のカテゴリ
最も一般的な活性化関数は、リッジ関数、動径関数、フォールディング関数の3つのカテゴリに分類できる。
リッジ活性化関数
リッジ関数は、入力変数の線形結合に作用する多変量関数である。例としては以下が挙げられる。
- 線形活性化: \(\phi(\mathbf{v}) = a + \mathbf{v}'\mathbf{b}\)
- ReLU活性化: \(\phi(\mathbf{v}) = \max(0, a + \mathbf{v}'\mathbf{b})\)
- ヘヴィサイド活性化: \(\phi(\mathbf{v}) = 1_{a+\mathbf{v}'\mathbf{b}>0}\)
- ロジスティック活性化: \(\phi(\mathbf{v}) = (1 + \exp(-a - \mathbf{v}'\mathbf{b}))^{-1}\)
生物学的に着想を得たニューラルネットワークでは、活性化関数はしばしばニューロンの発火率を表す。最も単純な形式はバイナリであり、ニューロンは発火するかしないかのどちらかで、ヘヴィサイドステップ関数によってモデル化される。実際のニューロンは特定の速度より速く発火することはできないため、有限の出力範囲を持つシグモイド関数が動機付けられる。正の傾きを持つ線形関数は、入力電流に伴う発火率の増加を表すことができる。
動径活性化関数
動径基底関数(RBF)として知られる特別なクラスの活性化関数は、動径基底関数ネットワークで使用される。これらの関数は、中心ベクトル\(\mathbf{c}\)からの距離に依存する。一般的な形式には以下が含まれる。
- ガウス関数: \(\phi(\mathbf{v}) = \exp(-\|\mathbf{v} - \mathbf{c}\|^2 / (2\sigma^2))\)
- 多重二次関数: \(\phi(\mathbf{v}) = \sqrt{\|\mathbf{v} - \mathbf{c}\|^2 + a^2}\)
- 逆多重二次関数: \(\phi(\mathbf{v}) = (\|\mathbf{v} - \mathbf{c}\|^2 + a^2)^{-1/2}\)
- 多調和スプライン
ここで、\(\sigma\)と\(a\)は関数の広がりを制御する。
フォールディング活性化関数
フォールディング活性化関数は、平均、最小、最大などの入力を集約し、プーリング層や多クラス分類の出力層で広く使用される。後者では、ソフトマックス活性化がクラス上の確率分布を生成するために一般的に使用される。
その他の例
周期関数は活性化関数として機能することができ、通常は正弦波が使用される。なぜなら、任意の周期関数はフーリエ変換によって正弦波に分解できるからである。二次活性化関数は\(x \mapsto x^2\)を写像する。
飽和関数と非飽和関数
活性化関数\(f\)は、入力の大きさが無限大に近づくにつれて勾配ノルムの極限がゼロになる場合、すなわち\(\lim_{|v| \to \infty} |\nabla f(v)| = 0\)の場合、飽和していると言う。この極限がゼロでない場合、非飽和であると言う。ReLUのような非飽和関数は、深いネットワークの学習を妨げる勾配消失問題に悩まされる可能性が低いため、しばしば好まれる。
量子活性化関数
ゲートモデル量子コンピュータ上でプログラムされた量子ニューラルネットワークでは、変分量子回路ではなく量子パーセプトロンに基づいており、活性化関数の非線形性は、各層の各パーセプトロンの出力を測定することなく実装できる。パーセプトロンによって計算された引数のテイラー級数展開を作成し、所望の次数までの冪を計算するための適切な量子回路を使用することで、重ね合わせの性質を維持できる。これらの量子回路は、任意の古典的活性化関数を近似するように設計できる。
関連項目
- ロジスティック関数
- 整流器(ニューラルネットワーク)
- 安定性(学習理論)
- ソフトマックス関数