今日は先生が職員会議で不在。ITクラブの3人だけで、活性化関数について予習します。リーダー役はジャスミン、まとめ役はつむぎ、ボケ役はましろ。先生が戻ったときに胸を張れるよう、頑張りましょう。先生不在だからこそ、自分たちで考える力が育つ回です。
よーし、今日は先生いないし、あたしたちだけで活性化関数を攻略するよ! つむぎ、頼んだ!
いきなり丸投げ……まあいいわ。
活性化関数は、ニューロンが受け取った入力から、出力をどう決めるかを決める関数のこと。
ここに非線形性を入れることで、ネットワークが複雑な問題を解けるようになるの。
非線形性? ほんと難しい言葉ばっかだね……。
直線じゃ表現できないグニャッとした関係性のこと、と理解してOK。
活性化関数がないと、何層重ねても結局『大きな1層』と同じ働きしかできないのよ。
数学的には、線形変換を合成してもまた線形変換、ってだけの話ね。
ふぇぇ、それはもったいないですぅ……。
せっかく深くしたのにぃ。
代表的なのは3つ。
1つ目の活性化関数の筆頭『ReLU』は、入力が0以下なら0、0より大きければそのまま出力する関数。
計算がものすごく速くて、勾配消失問題も起きにくいので、今の深層学習の中間層で最も広く使われているわ。
へー、シンプルじゃん! で、残り2つは?
『Sigmoid』は、どんな入力でも出力を0〜1に押し込める S字型の関数。
確率として解釈しやすいから、2クラス分類の出力層で使われる。
『Softmax』は、複数クラスの出力を合計1の確率分布に変換する関数で、多クラス分類の出力層で定番ね。
シグモイドはギューっと押し込む感じで、ソフトマックスはみんなで合計100%になるように調整する感じ……和菓子の餡子を均等に包むみたいですぅ!
ましろ、その例えいいじゃん! 和菓子屋の娘の例えってやっぱ強いね!
つまり使い分けのポイントは、中間層はReLU、2値分類の出力はSigmoid、多値分類の出力はSoftmax。
これを覚えれば大丈夫。
他にもあんの?
あるわよ。
ReLUの亜種で負の領域にも微小な勾配を残す『Leaky ReLU』、負の傾きを学習可能にした『PReLU』、滑らかさを重視した『GELU』や『Swish』など。
Transformer系モデルではGELUが定番。
歴史的にはSigmoid→tanh→ReLU→GELUと進化してきていて、ReLUには入力が常に負だと出力が0のまま止まる『死んだReLU』という注意点もあるわ。
Softmaxも大きな値でオーバーフローしやすいから実装ではmaxを引く工夫が定番ね。
ふぇぇ、道具も時代とともに変わっていくんですねぇ。
よーし、先生に『つむぎがまとめました!』って報告しよう!
確認クイズ
多クラス分類問題の出力層に最もよく使われる活性化関数はどれか?
- ReLU
- Sigmoid
- Softmax
- tanh
こたえを見る
正解: 3. Softmax
Softmaxは入力ベクトルを確率分布 (各要素が0〜1で合計が1) に変換するため、多クラス分類の出力層で広く使われます。ReLUは中間層向け、Sigmoidは2値分類出力向けと使い分けます。