【かっせいかかんすう】
活性化関数 とは?
💡 ニューロンのスイッチを入れるかどうか決める「脳細胞の発火ルール」
📌 このページのポイント
- ニューラルネットワークに非線形性を与えるための関数
- 活性化関数がないと何層重ねても線形変換にしかならない
- シグモイド・ReLU・tanhなど複数の種類がある
- 現在はReLU系が主流で深いネットワークの学習を助ける
活性化関数って何のためにあるの?
非線形性を加えるためだよ。活性化関数がないと、何層重ねても「数を掛けて足すだけ」の線形変換にしかならない。それだと1層と同じで、複雑なパターンを学べないんだ。活性化関数を入れることで「曲がった境界線」が描けるようになるんだよ。
シグモイドとReLUって何が違うの?
シグモイドは入力をどんな値でも0〜1の間に変換するやつ。確率みたいに解釈できて便利だけど、値が大きくなると傾きがほぼ0になって勾配消失が起きやすい。ReLU(レルー)は「0以下なら0、それより大きければそのままの値」というシンプルな関数で、計算が速くて勾配消失が起きにくいから今主流なんだよ。
ReLUの方が優れてるならシグモイドは使わないの?
ReLUって「0以下はすべて0にする」って欠点がありそうだけど?
するどいね!それが「Dying ReLU問題」と呼ばれる現象で、ノードが一度でも負の領域に入ると勾配が0になって、そのノードが二度と学習しなくなることがあるんだ。解決策としてLeaky ReLUは0以下でも少し傾きを持たせて、ELUはなめらかな曲線にする。さらに最近はGELUやSwishのような活性化関数がTransformer系のモデルで好まれていて、「どの活性化関数が最強か」は今も研究が続いているんだよ。
まとめ:ざっくりこれだけ覚えればOK!
「活性化関数」って出てきたら「ニューロンに非線形な変換を加えてAIが複雑なパターンを学べるようにする関数だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Activation Function」 = 活性化する関数
💬 脳の神経細胞が一定の電気信号を超えたときに「発火(活性化)」する仕組みを模倣した名前だよ