ソフトマックス関数とは、複数の数値を合計が1になる確率のような分布へと変換する活性化関数です。主にニューラルネットワークの出力層で使われ、多クラス分類問題において各クラスに属する確率を算出する際に重要な役割を果たします。
ソフトマックス関数とは
一言でいうと、複数の数値を「すべて足すと1になる確率の数値」に変換するための便利な数学的関数です。
詳しく解説
ソフトマックス関数は、入力された任意の実数のスコアを受け取り、それらを自然対数の底の指数関数に通すことで非負の数値に変換し、さらにそれらの総和で割ることで正規化を行います。これにより、出力された値はすべて0から1の範囲に収まり、全クラスの合計値が必ず1になります。この仕組みにより、モデルがどれほどその予測に自信を持っているかを確率として解釈できるようになります。ディープラーニングにおける多クラス分類の標準的な出力手法として広く利用されています。
具体例・使われ方
例えば、画像認識AIが「猫」「犬」「鳥」の画像を判定する際、最後の層でそれぞれの動物らしさを表すスコアを出力します。ここにソフトマックス関数を適用すると、猫が70%、犬が20%、鳥が10%といったように、すべての確率の合計が100%になる形式で結果を得ることができます。
似た用語との違い
シグモイド関数と混同されやすいですが、シグモイド関数が出力を0から1の間に独立して収めるため「二値分類」で主に使われるのに対し、ソフトマックス関数は複数の出力間で総和が1になるよう相互に調整するため「多クラス分類」で使われます。
注意点
入力値の中に極端に大きな数値が含まれている場合、指数計算の過程でオーバーフローを引き起こす可能性があります。そのため、実際のプログラム実装では数値安定性を考慮して最大値を引くなどの工夫が一般的に行われます。
この解説は役に立ちましたか?誤りが含まれる場合はご報告いただけますと幸いです。
更新日時: 2026年8月28日 02:21