【ディープラーニング】ソフトマックス関数とは?数値を「確率」に変える魔法の計算

こんにちは。ゆうせいです。

前回は、AIの予測のズレを測る「交差エントロピー」についてお話ししました。

その中で、「AIの出力を、確率に直してから計算する」という話が出てきましたね。

実は、ニューラルネットワークの計算結果というのは、そのままだと 5.2 とか -1.8 といった、バラバラの数字(スコア)が出てきます。これを「猫である確率 80 %」のように、合計して 100 %( 1.0 )になるように整えてくれるのが、今回紹介する ソフトマックス関数(Softmax Function) です。

名前の中に「マックス(最大)」と入っていますが、なぜ「ソフト」なのでしょうか。

今回は、AIが最後の最後に行うこの重要な処理について、その仕組みと名前の由来を解説していきます。

そもそも、なぜ変換が必要なの?

ニューラルネットワークが計算した直後の生の数値(ロジットと呼びます)は、ルール無用の数字です。

  • 猫スコア: 3.2
  • 犬スコア: 1.1
  • 鳥スコア: -0.5

これだと、どれくらい猫っぽいのか、直感的にわかりにくいですよね。しかも、マイナスのスコアなんて確率としてはありえません。

私たちが欲しいのは、こういう形です。

  • 猫: 88
  • 犬: 10
  • 鳥: 2
  • 合計: 100

どんな数字が来ても、必ずプラスにして、合計を 1 にする。これをやってくれるのがソフトマックス関数です。

ステップ1:マイナスを消し去る(指数関数の力)

まず最初にやることは、マイナスの数字を消すことです。

単純に絶対値にするのではありません。自然対数の底 e (ネイピア数 \approx 2.718 )という定数を使って、すべての数字を e の「乗数」にします。

e^x という計算です。

  • e^{3.2} \approx 24.5
  • e^{1.1} \approx 3.0
  • e^{-0.5} \approx 0.6 (マイナス乗しても、小さいプラスの数になります!)

この計算をすることで、全ての数字が「プラス」になります。

さらに、 e を使うことで、 「大きい数字はより大きく、小さい数字はより小さく」 強調されるという効果もあります。

ステップ2:合計して割る(シェアの計算)

全ての数字がプラスになったら、次は「割合」を出します。

これはケーキを切り分けるのと同じです。

  1. さっき計算した数値を全部足します(合計値を出す)。24.5 + 3.0 + 0.6 = 28.1
  2. それぞれの数値を、合計値で割ります。
    • 猫: 24.5 \div 28.1 \approx 0.87 (87%)
    • 犬: 3.0 \div 28.1 \approx 0.11 (11%)
    • 鳥: 0.6 \div 28.1 \approx 0.02 (2%)

これで、合計すると必ず 1 (100%)になる確率の完成です。

名前の由来:「ハード」じゃないから「ソフト」

さて、なぜ「ソフトマックス」という名前なのでしょうか。

それは、普通の「マックス(最大値)関数」と比較するとわかります。

ハードマックス(普通の最大値)

一番大きい数字だけを 1 にして、あとは全部 0 にする方法です。

  • 猫: 1
  • 犬: 0
  • 鳥: 0

これだと、白黒はっきりしすぎていて、「犬の可能性もちょっとはあるんだけどな...」という微妙なニュアンスが消えてしまいます。これは情報としては硬すぎる(ハード)のです。

ソフトマックス

一番大きい数字に高い確率を与えつつ、他の候補にも「可能性の余地」を残してあげる方法です。

  • 猫: 0.87
  • 犬: 0.11
  • 鳥: 0.02

最大値(マックス)を選ぼうとしているけれど、完全に他の可能性を消すわけではない。だから「ソフト」なマックス関数なのです。

まとめ

いかがでしたか。

ソフトマックス関数は、AIの計算結果を人間が理解しやすい「確率」に翻訳してくれる通訳のような存在でした。

  • 役割:バラバラの数値を、合計 1 の確率に変換する。
  • 仕組みe の力でプラスにして、合計で割ってシェアを出す。
  • 名前:一番大きいやつを優遇するけど、他もゼロにはしないから「ソフト」。

この関数のおかげで、前回学んだ「交差エントロピー」の計算ができるようになるわけです。

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。