活性化関数(アクティベーション・ファンクション)
解説:ニューロンの「やる気スイッチ」
活性化関数は、ニューロン(ノード)に入ってきた情報を、「次の層にどれくらいの強さで伝えるか」を決定する関数です。

人間の脳細胞(ニューロン)は、電気信号を受け取っても常に反応するわけではなく、ある一定以上の刺激が来たときだけ「発火(反応)」して信号を隣に伝えます。この「発火するかどうかの判断」や「信号の強弱の調整」を数式でモデル化したものが活性化関数です。
なぜ「非線形」な関数が必要なのか?
ここが最も重要なポイントです。もし、活性化関数を使わずに単なる「掛け算と足し算(線形変換)」だけで層を重ねたらどうなるでしょうか?
線形の罠(層を重ねる意味がなくなる)
「2倍する」という処理(線形)を2回重ねても、結局は「4倍する」という1回の処理と同じことになってしまいます。
つまり、活性化関数(非線形なカーブ)がないと、いくら層を深くしても複雑な表現(曲線的な境界線)が作れず、ディープラーニングの威力が出せないのです。
「2倍する」という処理(線形)を2回重ねても、結局は「4倍する」という1回の処理と同じことになってしまいます。
つまり、活性化関数(非線形なカーブ)がないと、いくら層を深くしても複雑な表現(曲線的な境界線)が作れず、ディープラーニングの威力が出せないのです。
代表的な活性化関数と使い分け
現在は、場所(中間層か出力層か)によって使う関数がほぼ決まっています。
| 関数名 | 出力範囲 | 特徴・主な用途 |
|---|---|---|
| ReLU関数 (ランプ関数) |
0 〜 ∞ | 【中間層の主役】 入力が0以下なら0、プラスならそのまま通す。「計算が速い」「勾配消失しにくい」ため、現在のディープラーニングで最も使われる。 |
| シグモイド関数 | 0 〜 1 | 【二値分類の出力層】 滑らかなS字カーブ。かつては中間層でも使われたが、層を深くすると学習が進まなくなる「勾配消失問題」が起きやすいため、現在は主に出力層(確率表現)で使われる。 |
| ソフトマックス関数 | 0 〜 1 (合計1.0) |
【多クラス分類の出力層】 出力の合計が「100%(1.0)」になるように調整する。 例:「犬の確率80%、猫の確率20%」 |
| tanh関数 (ハイパボリックタンジェント) |
-1 〜 1 | シグモイドに似ているが、0を中心に対称。「-1」まで出力できるのが特徴。RNNなどで使われることがある。 |
G検定対策
出題ポイント
- 役割:「非線形性」を持たせることで、複雑なパターンを学習可能にすること。
- ReLUの優位性:勾配消失問題(学習が止まる現象)に強く、計算コストが低いこと。
- 出力層の選び方:
ひっかけ対策
- × 線形関数でも層を増やせば表現力は上がる
(解説)誤りです。線形関数の重ね合わせは、結局1つの線形関数と同じになります。これを打破するために活性化関数が必要です。 - × すべての活性化関数は0〜1の範囲で出力する
(解説)誤りです。ReLUは正の無限大までいきますし、tanhはマイナスの値(-1〜1)も取ります。
