活性化関数はニューロンの出力を決定する重要な部品。シグモイド、ReLU、Softmaxを押さえるのがG検定の基本です。
活性化関数って、なんでいろんな種類があるの?
活性化関数は非線形性を与える役割があるの。
もし線形関数だけなら、どれだけ層を重ねても1層の線形モデルと等価になってしまうのよ。
初期はシグモイド関数 σ(x) = 1/(1+exp(-x)) が主流。
S字カーブで0〜1に収まるけど、勾配消失問題の原因でもあるわ。
S字の両端で勾配がほぼゼロになっちゃうんですよねぇ〜…
そう。
そこでReLU(Rectified Linear Unit) f(x) = max(0, x) が登場。
正の入力では微分値が1で勾配消失しにくく、計算も速い。
2012年のAlexNetで広く使われ、現在の標準ね。
ReLUにも弱点があって、負の入力では出力も勾配も0になるDying ReLU問題。
これを解決する変種としてLeaky ReLU(リーキーReLU) が提案されたわ。
Leaky ReLUは何が違うの?
負の入力に対して小さな傾き (例: 0.01) を持たせる。
f(x) = max(0.01x, x)。
これでニューロンが完全に死ぬのを防ぐのよ。
他にはELU(指数線形ユニット)、Swish、GELUなど多数。
Transformer系ではGELU(Gaussian Error Linear Unit) がよく使われるわ。
うぅ〜ん、いっぱいあって選ぶの大変ですぅ…
最後にSoftmax関数。
多クラス分類の出力層で使う、全出力を0〜1の確率に変換する関数ね。
exp(xi) / Σexp(xj)で計算するの。
Softmaxって、なんで名前にSoftが付いてるの?
argmax (最大値を1、他を0にする) の滑らかな (soft) 版だから。
確率分布として扱えるのが利点ね。
交差エントロピーと組み合わせて分類問題で使うのが定番よ。
tanh関数 (双曲線正接) もまだ現役。
RNNでシグモイドの代わりに使われることが多いわ。
出力範囲が-1〜1で、シグモイドより勾配が大きいの。
活性化関数にも時代の流れがあるんだねぇ!
G検定では『シグモイド・ReLU・Leaky ReLU・Softmax・tanh』を押さえておいてね!
確認クイズ
多クラス分類の出力層で用いられ、出力を確率分布に変換する活性化関数はどれか。
- ReLU
- シグモイド
- Softmax
- tanh
こたえを見る
正解: 3. Softmax
Softmax関数は多クラス分類の出力層で使われ、exp(xi)/Σexp(xj) で全出力を0〜1の確率に変換します。シグモイドは2クラス分類の出力で使用、ReLUとtanhは中間層で使用します。