【第67回】AIはどこでスイッチを入れる?活性化関数(Sigmoid, ReLU等)とは
ニューラルネットワークは、ただ足し算するだけでは複雑な判断ができません。
そこで重要になるのが、非線形性を加える活性化関数です。
この記事では、SigmoidやReLUなどの役割と違いをやさしく解説します。
1. 読み方
かっせいかかんすう (Activation Function)
2. 意味(定義)
「ニューロンに届いた信号の合計値を、次の層へ伝えるための『適切な値』へと変換する関数」のことです。
非線形性の導入: 単なる足し算の結果を、ぐにゃりと曲げたり、一定の値で切り捨てたりすることで、「複雑な境界線(曲線)」を描けるようにします。
信号の制御: 入力された情報が「重要か(次へ送る)」「不要か(無視する)」というスイッチのような役割を果たします。
【自動ドアのセンサー感度調整の例え】
自動ドアには、動くものを検知するセンサーがあります。
入力信号: センサーが捉えた「動きの大きさ」です。
活性化関数(感度の設定):
パターンA (Sigmoid風): 動きが小さいときは「0」、大きくなると徐々に「0.5」「0.8」と反応し、動きが猛烈に大きいと「1」になる。滑らかな反応です。
パターンB (ReLU風): 動きが「一定(しきい値)」を超えていないときは、全く反応しない(「0」)。でも、一度超えたら、動きの大きさに比例してガツンと反応する。
出力: この変換された「反応度」が、ドアを開けるモーターへの命令として伝わります。
この「変換のルール」こそが活性化関数です。
3. 歴史・背景
初期のニューラルネットワークでは、シグモイド関数 (Sigmoid function) が主流でした。これは、どんな入力に対しても「0から1の間」に値を収めてくれる便利な関数でした。
しかし、層を深く(ディープに)していくと、「勾配消失問題(後述)」という致命的な問題が発生しました。層が深くなるにつれて、学習に必要な信号がどんどん小さくなって消えてしまう現象です。
この問題を解決するために登場したのが ReLU (Rectified Linear Unit) 関数 です。これは「マイナスの値は全部ゼロにする」という非常にシンプルなルールですが、これがディープラーニングの爆発的な進化(深層化)を可能にしました。
4. 比較・対比(似た用語との違い)
ここが試験で狙われる「整理」ポイントです!
Sigmoid(シグモイド)関数 ★重要
特徴: 出力を「0 〜 1」の範囲に押し込める。
弱点: 層が深くなると、勾配(学習のための信号)がどんどん小さくなって消えてしまう(勾配消失問題)。
ReLU(レリュ/Rectified Linear Unit)関数 ★最重要
特徴: 入力が0以下のときは「0」、0より大きいときは「入力値をそのまま」出す。
利点: 計算が非常に速い。また、勾配が消えにくいため、ディープラーニングの主流となっている。
tanh(ハイパボリックタンジェント)関数 ★重要
特徴: 出力を「-1 〜 1」の範囲に押し込める。シグモイド関数を改良したもので、中心が0なので学習が進みやすい。
5. 活用シーン(どんな問題に使うか)
中間層(隠れ層): 現在の主流は ReLU です。複雑な特徴を抽出するために使われます。
出力層(最終的な答え):
「これは猫か、犬か」という分類 → Softmax(ソフトマックス)関数(各クラスの確率: 猫10%、犬90%、合計100%として出力)。
「明日の気温は何度か」という回帰 → 特になし(線形な出力)。
6. G検定での出題傾向
G検定では、以下のポイントが狙われます!
勾配消失問題 (Vanishing Gradient Problem) ★超頻出
「シグモイド関数を使いすぎると、層が深くなったときに学習が進まなくなる現象」という文脈。
ReLU関数の利点: 「計算が高速」「勾配消失を防ぎやすい」というキーワード。
Softmax(ソフトマックス)関数の役割: 「出力層で、各クラスの確率(合計が1になるように)を算出するために使われる」という点。
関数ごとの出力範囲の違い: (Sigmoid: 0 〜 1、tanh: -1 〜 1) という知識。
7. G検定の例題
【問題1:勾配消失問題と活性化関数】
ディープラーニングにおいて、層を深くしていくにつれて学習が困難になる「勾配消失問題」を引き起こしやすい活性化関数はどれですか?
A. ReLU関数
B. Sigmoid関数
C. Leaky ReLU関数
D. 恒等関数 (Identity function)
【問題2:Softmax関数の用途】
多クラス分類(例:画像が「犬」「猫」「鳥」のどれであるかを判定する)において、出力層でよく用いられる、各クラスの確率の合計が1になるように変換する活性化関数はどれですか?
A. Sigmoid関数
B. ReLU関数
C. Softmax関数
D. tanh関数
8. 例題の回答と解説
【問題1 の回答】
正解:B
【解説】 シグモイド関数は、入力が大きすぎたり小さすぎたりすると、出力の変化(傾き)がほぼゼロになってしまいます。これを層の数だけ掛け合わせていくと、後ろの層まで「学習のための信号」が届かなくなってしまいます。これが勾配消失問題です。ReLUはこの問題を克服するために広く使われています。
【問題2 の回答】
正解:C
【解説】 Softmax(ソフトマックス)関数は、複数の出力値を「確率」として解釈できるように変換する関数です。すべてのクラスの確率を合計すると必ず 1 (100%) になるという性質があり、分類問題の最終ステップにおいて必須となります。A は二値分類、B は中間層、D は -1〜1 の範囲への変換に使われます。
