【かっせいかかんすう】

活性化関数 とは?

💡 ニューロンのスイッチを入れるかどうか決める「脳細胞の発火ルール」
📌 このページのポイント
活性化関数の種類 ReLU x y -3 3 y = max(0, x) 出力: [0, +∞) Sigmoid x y 1 0 0.5 y = 1 / (1 + e⁻ˣ) 出力: (0, 1) Tanh x y 1 -1 y = tanh(x) 出力: (-1, 1)
活性化関数の種類
ひよこ ひよこ

活性化関数って何のためにあるの?

ペンギン先生 ペンギン先生

非線形性を加えるためだよ。活性化関数がないと、何層重ねても「数を掛けて足すだけ」の線形変換にしかならない。それだと1層と同じで、複雑なパターンを学べないんだ。活性化関数を入れることで「曲がった境界線」が描けるようになるんだよ。

ひよこ ひよこ

シグモイドとReLUって何が違うの?

ペンギン先生 ペンギン先生

シグモイドは入力をどんな値でも0〜1の間に変換するやつ。確率みたいに解釈できて便利だけど、値が大きくなると傾きがほぼ0になって勾配消失が起きやすい。ReLU(レルー)は「0以下なら0、それより大きければそのままの値」というシンプルな関数で、計算が速くて勾配消失が起きにくいから今主流なんだよ。

ひよこ ひよこ

ReLUの方が優れてるならシグモイドは使わないの?

ペンギン先生 ペンギン先生

出力層で「確率を出したい」ときはシグモイドを使うよ。「スパムである確率」とか「病気である確率」を0〜1で出力したいときはシグモイドが自然なんだ。隠れ層はReLU、出力層は問題に応じてという使い分けが基本だね。

ひよこ ひよこ

ReLUって「0以下はすべて0にする」って欠点がありそうだけど?

ペンギン先生 ペンギン先生

するどいね!それが「Dying ReLU問題」と呼ばれる現象で、ノードが一度でも負の領域に入ると勾配が0になって、そのノードが二度と学習しなくなることがあるんだ。解決策としてLeaky ReLUは0以下でも少し傾きを持たせて、ELUはなめらかな曲線にする。さらに最近はGELUやSwishのような活性化関数がTransformer系のモデルで好まれていて、「どの活性化関数が最強か」は今も研究が続いているんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「活性化関数」って出てきたら「ニューロンに非線形な変換を加えてAIが複雑なパターンを学べるようにする関数だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Activation Function」 = 活性化する関数
💬 脳の神経細胞が一定の電気信号を超えたときに「発火(活性化)」する仕組みを模倣した名前だよ
← 用語集にもどる