活性化関数(Activation Function)
活性化関数(Activation Function)は、人工ニューラルネットワーク(Artificial Neural Network)において、ニューロンの出力を決定する非線形関数です。活性化関数は、ニューラルネットワークの隠れ層や出力層に適用され、入力信号の加重和を出力に変換します。
活性化関数は、ニューロンの出力を制約するために使用されます。非線形性を持つ活性化関数の使用は、ニューラルネットワークが複雑なデータをモデル化する能力を向上させます。また、活性化関数はニューラルネットワークに非線形性を導入するためにも重要です。なぜなら、複数の線形関数の組み合わせは依然として線形関数になるため、非線形関数が必要です。
主な活性化関数には以下のようなものがあります:
- シグモイド関数(Sigmoid function): 入力を0から1の範囲に変換します。主に二値分類問題で使用されますが、勾配消失の問題があるため、最近ではあまり使われません。
- ハイパボリックタンジェント関数(Hyperbolic Tangent function, Tanh): 入力を-1から1の範囲に変換します。シグモイド関数と同様に、非線形変換を提供しますが、出力の範囲が広がっているため、勾配消失問題が少なくなります。
- ランプ関数(Rectified Linear Unit, ReLU): 入力が正の場合はそのまま出力し、負の場合は0を出力します。ニューラルネットワークで最も一般的に使用される活性化関数であり、計算効率も高いです。
- Leaky ReLU: ReLUの改良版で、負の値に対して小さな傾斜を持つようになっています。
- ステップ関数(Step function): 入力が閾値を超える場合に1を出力し、そうでない場合に0を出力します。主に二値分類問題に使用されます。