ソフトマックス関数 (G検定)

ソフトマックス関数

1. 定義と概要

ソフトマックス関数とは、複数の実数値(スコア)を入力とし、各要素を0から1の範囲に収め、かつ全要素の合計が1になるように変換する関数です。各入力値の指数関数(eのべき乗、つまり「e^x」で計算し、値が大きいほど急激に増える関数)を計算し、それを全入力値の指数関数の総和で割ることで求められます。この計算方法から、正規化指数関数とも呼ばれます。

ニューラルネットワークが3クラス以上を判定する多クラス分類モデル(入力データがどのクラスに当てはまるかを判定するモデル)の出力層で、各クラスに属する確率を表現するために使われる関数です。2値分類ではシグモイド関数で1つのスコアを0〜1の確率に変換すれば足りていました。しかし、3クラス以上の多クラス分類では、クラスごとのスコアを互いに関連づけたうえで確率分布として扱う必要があります。

ソフトマックス関数は指数関数によって各クラスのスコアの差を相対的に強調しながら、全クラスの確率の合計が1になるよう正規化(値の合計や範囲をそろえて扱いやすい形に変換すること)する形で、この要件に対応しています。分母に全クラスの指数関数の総和が入るため、あるクラスのスコアが上がれば他のクラスの確率は自動的に下がり、クラス同士が押し合う関係になります。

2. 試験対策ポイント

G検定の学習でまず整理したいのは、「各クラスのスコアの指数関数を計算し、その総和で割ることで確率分布に変換する」という、合計が1になる正規化の手順です。もう一つ押さえておきたいのが、出力層の活性化関数はタスクの種類によって使い分けられるという対応関係で、次のように整理できます。

タスクの種類 出力層の活性化関数
回帰(数値そのものを予測する) 恒等関数
2値分類 シグモイド関数
多クラス分類(3クラス以上) ソフトマックス関数

この組み合わせは取り違えやすい点です。対応関係を取り違えると、モデルの設計そのものが誤った方向に進んでしまうため、問題文からタスクの種類と活性化関数の組み合わせを丁寧に読み取る必要があります。

多クラス分類のモデルを学習させるとき、正解からのずれを数値化する損失関数(モデルの予測が正解からどれだけずれているかを数値化する関数)として、交差エントロピー誤差(正解の確率分布と予測した確率分布のズレの大きさを測る損失関数)が使われます。

ソフトマックス関数の出力とこの交差エントロピー誤差を組み合わせて誤差を計算するのが、標準的な構成です。ソフトマックス関数の出力を予測した確率分布として扱い、正解との差を交差エントロピー誤差で測ることで、モデルの学習を進めます。

数式上、クラス数を2としたソフトマックス関数はシグモイド関数と数学的に一致します。つまりシグモイド関数は、ソフトマックス関数の特殊なケースという関係にあります。

また、指数関数は入力値が大きいとオーバーフロー(コンピュータが扱える数値の範囲を超えて計算結果が壊れてしまう現象)を起こしやすいため、各入力から最大値を引いてから計算する数値安定化の工夫が実装上とられます。この一連の関連用語は、あわせて押さえておきたいポイントです。

3. 関連概念との比較・相違点

シグモイド関数との最大の違いは、出力の数と対象タスクにあります。シグモイド関数は1つのスコアを0〜1の確率に変換して2値分類に使われるのに対し、ソフトマックス関数は複数のスコアをまとめて合計1の確率分布に変換して3クラス以上の分類に使われます。

前述のとおり、クラス数を2としたソフトマックス関数はシグモイド関数と数式上一致するため、両者は連続した関係にあるといえます。この関係を知っておくと、ソフトマックス関数の数式の意味を、なじみのあるシグモイド関数の延長として理解しやすくなります。

恒等関数(入力をそのまま出力する関数で、回帰タスクの出力層に使われる)との違いは、出力層でのタスクによる使い分けにあります。恒等関数は入力をそのまま出力し数値そのものを予測する回帰タスクに使われるのに対し、ソフトマックス関数は入力を確率分布へ変換する分類タスクに使われます。

回帰・2値分類・多クラス分類という3つのタスクに、恒等関数・シグモイド関数・ソフトマックス関数がそれぞれ対応する形で整理されています。この3つの関数を、出力の数と出力の意味という軸で並べると、違いはさらにはっきりします。

関数 出力の数 出力の意味
恒等関数 1つ 入力をそのまま出した数値
シグモイド関数 1つ 0から1の間の確率
ソフトマックス関数 クラスの数だけ 合計が1になる確率分布

タスクの性質に合わない活性化関数を選んでしまうと、出力の値が本来の意味を持たなくなるため、この対応関係はモデル設計の土台にあたります。

4. ビジネス・実務での活用シナリオ

EC・画像認識の分野では、商品画像を「アパレル」「家電」「食品」など複数カテゴリに自動振り分けするサービスで、各カテゴリへの当てはまりやすさをソフトマックス関数の出力である確率として算出します。確信度の低い商品だけを人手確認に回す運用にすれば、すべての商品を人が目視で分類する場合に比べて作業量を大幅に減らせるうえ、確率という数値で確信度を管理できるため、判断基準を後から調整しやすくなります。

生成AI・自然言語処理の分野では、大規模言語モデル(大量の文章データから学習し、人間らしい文章を生成できるAIモデル)が次に出力する単語を選ぶ際、語彙全体に対する確率分布をソフトマックス関数で計算します。確率の高い単語を選びながら文章を生成していく仕組みが、自然な文章の出力を支えています。

医療画像診断支援の分野では、画像診断支援AIが「正常」「疾患A」「疾患B」など複数の診断カテゴリそれぞれの確率をソフトマックス関数で提示します。医師が最終判断を下す際の参考情報として活用されており、単一の答えを示すのではなく確率という形で候補を並べる点が、人の判断を支援する設計として重要な意味を持ちます。

5. 要点まとめ

  • ソフトマックス関数は複数の値を、合計が1になる確率分布に変換する関数であり、多クラス分類モデルの出力層で使われます。
  • シグモイド関数は2値分類向けに1つの確率を出力するのに対し、ソフトマックス関数は3クラス以上の分類向けに複数の確率を同時に出力します。クラス数2のソフトマックス関数はシグモイド関数に一致します。
  • 多クラス分類モデルの学習では、ソフトマックス関数の出力と交差エントロピー誤差を組み合わせて誤差を計算するのが標準的な構成です。

6. 確認問題

問1ソフトマックス関数は、複数の入力値を各要素が0から1の範囲に収まり、かつ合計が1になるように変換する関数である。

解答・解説をみる

○ 正しい

各入力値の指数関数を計算し、その総和で割ることで確率分布に変換する関数がソフトマックス関数です。この計算手順から、正規化指数関数とも呼ばれます。

問2シグモイド関数は3クラス以上の多クラス分類に使われることが多く、ソフトマックス関数は2値分類に使われることが多い。

解答・解説をみる

× 誤り

正しくは逆の関係にあります。シグモイド関数は2値分類、ソフトマックス関数は3クラス以上の多クラス分類に使われます。用途を入れ替えて覚えると混同しやすい組み合わせです。

問3多クラス分類モデルの学習では、ソフトマックス関数の出力と交差エントロピー誤差を組み合わせて誤差を計算することが一般的である。

解答・解説をみる

○ 正しい

交差エントロピー誤差は、正解の確率分布と予測した確率分布のズレを測る損失関数です。ソフトマックス関数の出力である予測した確率分布とセットで、多クラス分類の学習に使われます。