活性化関数とは
Activation Function
ニューロンの重み付き入力和に非線形変換を適用し、ネットワークが複雑な関数を表現できるようにする関数
ひとことで言うと
AIの各ニューロンの計算結果に変化を加え、複雑なパターンを表現できるようにする関数。
概要
活性化関数とは、ニューラルネットワークの各ノードが受け取った入力の重み付き和に対して適用する非線形変換関数。 線形変換のみを何層重ねても全体として1つの線形変換にしかならないため、活性化関数によって非線形性を導入することで、ネットワークは複雑な非線形関数を近似できるようになる。 代表的な関数にシグモイド関数・tanh・ReLU(Rectified Linear Unit)等があり、現在の深層学習ではReLUおよびその派生形が隠れ層で広く使われている。
背景
単純な線形結合だけを重ねたネットワークは、いくら層を深くしても表現力は線形モデルと変わらないという制約があった。 活性化関数は、各層に非線形性を持ち込み、多層構造を持つ意味を成立させるために導入された。
歴史
1943年: McCullochとPittsの人工ニューロンモデルで、入力の重み付き和を閾値関数によって0/1に変換する仕組みが導入される。 1986年前後: 誤差逆伝播法の普及とともに、微分可能なシグモイド関数・tanhが広く使われるようになる。 2010年: NairとHintonがReLUを提案し、勾配消失問題を緩和し深いネットワークの学習を実用化する上で重要な役割を果たす。
利点
- 非線形性を導入することで、ネットワークが複雑な関数を近似できるようになる
- ReLU等一部の関数は計算が単純で、大規模ネットワークでも高速に処理できる
欠点
- シグモイド・tanh等は入力が極端な値になると勾配がほぼ0になる勾配消失問題を起こしやすい
- ReLUも負の入力に対して勾配が常に0になり、学習が進まなくなる「dying ReLU」という問題を起こすことがある
比較
- ニューラルネットワーク — 活性化関数は、ニューラルネットワークの各ノードに非線形性を持たせる構成要素の1つ