AI/機械学習のニューラルネットワークにおける活性化関数(Activation function)とは、あるニューロンから次のニューロンへと出力する際に、あらゆる入力値を別の数値に変換して出力する関数である。
機械学習における人工ニューラルネットワーク(ANN:Artificial Neural Network)は、人間における生体ニューラルネットワーク(BNN:Biological Neural Network)の基本的な挙動を模倣している。そのBNNでは、生体ニューロンが活性化(activation)することによって、電気信号がそのニューロンから次のニューロンへと伝播(でんぱ、※「伝搬:でんぱん」ではないので注意)していくことになる。ANNで、この「活性化」を表現するのが、活性化関数である。
複数のニューロンから、あるニューロンへの入力は、全結合(Fully connected)などの線形変換(Linear transformation、線形写像)処理によって1つの数値にまとめられる。活性化関数は、その数値を次のニューロンに「どのように出力するか」、つまり「どう活性化するか」が定義されたものだ(※よって活性化関数で重要なのは、「数式自体」よりも「どのような形状のグラフになっているか」である。形状については、例えばシグモイド関数のグラフ図を参照)。
この活性化の変換は、非線形変換(Non-Linear transformation、非線形写像)である必要がある(※線形変換を何度重ねても線形にしか変化せず、意味がないので)。図1は、「複数のニューロンからの入力」→「線形変換」→「非線形変換」→「次のニューロンへの出力」の流れを示した図である。※ただし、出力層の活性化関数は次のニューロンに伝播するわけではないので、出力層の活性化関数には「恒等関数」と呼ばれる線形変換が用いられることもある。
使われる活性化関数は時代とともに変化している。ニューラルネットワークの基礎となっている情報処理モデル「パーセプトロン」(後日解説)では「ステップ関数」という活性化関数が用いられていた。しかし、「バックプロパゲーション」(後日解説)が登場してからは「シグモイド関数」や「tanh関数」が使われるようになった。さらに、最近のディープニューラルネットワークでは「ReLU」がよく使われるようになっている。
また、出力層においてよく使われる主な活性化関数としては、
がある。出力層の活性化関数の種類に応じて、使われる「損失関数」にもある程度のパターンがある。その具体的なパターンは表1にまとめた(※「交差エントロピー」や「平均二乗誤差」といった各損失関数については後日解説)。
\ | 分類問題(二値) | 分類問題(多クラス) | 回帰問題 |
---|---|---|---|
出力層の活性化関数 | シグモイド関数 | ソフトマックス関数 | (なし)/恒等関数 |
対応する損失関数 | 二値用の交差エントロピー(Binary cross entropy)誤差 | 多クラス用の交差エントロピー(Categorical cross entropy)誤差 | 平均二乗誤差(MSE) |
表1 出力層に使われる主要な活性化関数と、それに対応する損失関数のパターン |
表2は、本用語辞典で掲載している活性化関数の比較表である。各解説ページへのリンクも箇条書きで掲載した。
Copyright© Digital Advantage Corp. All Rights Reserved.