ソフトマックス関数の名前の由来と仕組み:最大値を滑らかに近似する計算手法
こんにちは。ゆうせいです。
機械学習や人工知能の分野を学び始めると、分類問題の出力層などでソフトマックス関数という計算式によく出会います。複数の選択肢の中から正解を予測する際、それぞれの選択肢の確率を算出するために広く用いられています。この名称に含まれるソフトという言葉が何を意味しているのか、なぜ単なる最大値の計算と区別されるのかについて解説します。
最大値を取り出す操作とハードマックス
ソフトマックス関数を理解するためには、対比となるハードマックスという概念を把握することが近道です。
通常の最大値を求める計算は、数学的にハードマックスと呼ばれる性質を持ちます。例えば、手元に3枚のカードがあり、それぞれ5点、8点、2点と書かれていると仮定します。この中から最も大きい数値を選ぶ場合、結果は8点のみとなり、他の数値は完全に切り捨てられます。
日常的な比喩で表現すると、学級委員長を決める多数決において、最も票を集めた1名だけを勝者として採用し、2位以下の得票数を完全にゼロとして扱う制度に相当します。
ハードマックスには明確な特徴が存在します。
- 最大の値を持つ項目のみを1とし、それ以外の数値をすべて0として出力します。
- 入力された数値がわずかに変化しても、順位が逆転しない限り出力値は変化しません。
- 数学的には段差のある階段のような変化をするため、微積分を用いた最適化計算が困難になります。
なぜソフトと呼ばれるのか
ソフトマックス関数におけるソフトという表現は、境界を滑らかにする、あるいは角を丸めるという意味合いを持っています。
ハードマックスが最大値以外の数値を0に切り捨てるのに対し、ソフトマックス関数は各入力値の大小関係を維持しながら、滑らかに最大値を強調します。先ほどの得点(5点、8点、2点)をソフトマックス関数に入力すると、最も大きい8点が最も高い数値として扱われますが、5点や2点にもそれぞれ大きさに応じた数値が割り当てられます。
先ほどの学級委員長選挙の例で言えば、1位の生徒に決定権を集中させつつも、2位や3位の得票比率も考慮して発言権の割合を配分するような仕組みです。完全な白黒の二者択一ではなく、グラデーションを持たせた状態にするため、ソフトという名称がつけられました。
ソフトマックス関数の数学的定義
ソフトマックス関数は、複数の実数を入力として受け取り、それらを合計が1になる数値の集まりへ変換します。
各数値を指数関数によって正の数へ変換した上で、全体の合計値で割る処理を行います。i番目の要素に対するソフトマックス関数の出力は、以下の数式で定義されます。
この数式には以下の役割があります。
- ネイピア数eの累乗を計算することで、負の数値も含めてすべての値を正の数へ変換します。
- 入力値の差を指数関数によって拡大し、大きな値を持つ項目を際立たせます。
- 全体の総和で各要素を割ることで、出力値の総和を常に1にします。
出力された数値の総和が1になる性質から、各出力値はそれぞれの選択肢が選ばれる確率として解釈できます。
ソフトマックス関数を採用するメリットとデメリット
機械学習の出力層にソフトマックス関数を用いることには、以下のような特徴が確認できます。
メリット
- 出力値が0から1の範囲に収まり、合計が1になるため、確率として直感的に解釈できます。
- 関数全体が滑らかな連続関数であるため、微分計算が可能となり、誤差逆伝播法を用いた機械学習モデルの重み更新が行えます。
- 最大値以外の情報も完全に失われないため、モデルの確信度を評価できます。
デメリット
- 指数関数を計算に含むため、入力値が極端に大きい場合にコンピュータの数値計算上でオーバーフロー(桁あふれ)が発生するリスクがあります。
- 複数の選択肢が独立して存在することを前提としているため、複数の正解が同時に存在するマルチラベル分類問題には適していません。
- 単純な最大値取得の処理に比べて計算コストが増加します。
まとめと今後の学習ステップ
ソフトマックス関数という名称は、最大値のみを取り出すハードマックスという処理に対し、入力値の大小関係を滑らかな確率分布へと変換する特性から名付けられました。
理解を深めるための学習ステップは以下の通りです。
機械学習において、ソフトマックス関数の出力と交差エントロピー誤差関数がどのように組み合わされて重みの更新計算(微分)に繋がるのかを調べます。になります。
指数関数(ネイピア数eのx乗)のグラフの形状と、入力値が大きくなるにつれて急激に増加する性質を確認します。
具体的な数値(例えば、1、2、3)を手計算でソフトマックス関数の式に代入し、合計が1になる計算手順を追います。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール





