AI用語集・ディープラーニングの概要

ソフトマックス関数とは

そふとまっくすかんすうsoftmax function

別名:ソフトマックス

  • シラバス 技術12
  • ◯×チェック3問
  • 練習問題12問

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

1行定義

ソフトマックス関数とは、複数の数値をそれぞれ0から1の間の値に変換し、その合計がちょうど1になるようにする関数のことです。

くわしく

ソフトマックス関数は、ニューラルネットワークが出した複数の数値(スコア)を、確率の形に変換する関数です。主に多クラス分類の出力層で使われます。

計算のしかた

K個の入力z1, …, zKに対して、i番目の出力はexp(zi) / (exp(z1) + … + exp(zK))です。まず、各スコアを指数関数で正の値にします。次に、それぞれを全体の合計で割ります。

たとえば、画像が「犬」「猫」「鳥」のどれかを判定するモデルが、スコア1.0、0.0、−1.0を出したとします。ソフトマックス関数を通すと、およそ0.67、0.24、0.09になります。マイナスのスコアも0より大きい値になり、合計は1です。スコアの大小の順番もそのまま保たれます。

名前の由来と性質

最大のものだけを1、残りを0にする操作を、なめらかに(ソフトに)したものなので、この名前があります。指数関数を使うため、スコアの差が大きいほど、最大のクラスに確率が集中します。

すべての入力に同じ数を足しても、出力は変わりません。実装では、この性質を使って入力から最大値を引いてから計算し、指数関数の値が大きくなりすぎるのを防ぎます。

使いどころと注意点

出力層では、誤差関数の交差エントロピーと組み合わせるのが定番です。正解クラスの確率が大きくなるように学習が進みます。

2クラスのソフトマックス関数は、2つのスコアの差をシグモイド関数に入れたものと同じになります。一方、1枚の画像に複数のラベルを付けるマルチラベル分類には向きません。合計が1なので、あるクラスの確率が上がると、他のクラスの確率が下がるからです。この場合は、クラスごとにシグモイド関数を使います。

出力層以外でも使われます。TransformerのAttentionでは、どの単語にどれだけ注目するかの重みを、ソフトマックス関数で合計1にそろえています。

覚え方

「指数で正にして、合計で割る」と覚えます。

G検定での出題

出題のされ方

出力が合計1の確率として読める性質、多クラス分類の出力層での使用と交差エントロピーとの組み合わせ、シグモイド関数との使い分け(1つを選ぶか、複数を付けるか)が問われます。

混同しやすい用語

用語意味
ソフトマックス関数このページの用語複数の数値をそれぞれ0から1の間の値に変換し、その合計がちょうど1になるようにする関数
シグモイド関数どんな実数の入力も0から1の間の値に変換する、なめらかなS字形の関数

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. ソフトマックス関数の出力は、どの要素も0より大きく、すべてを足すと1になる。

    答えを見る

    答え ◯ 正しい

    指数関数の値は常に正で、それを全体の合計で割るためです。そのため確率として読めます。

  2. ソフトマックス関数を通すと、変換前のスコアが最も大きいクラスとは別のクラスが、最も大きい確率になることがある。

    答えを見る

    答え × 誤り

    指数関数は単調に増加するので、スコアの大小の順番は変換後も変わりません。

  3. ソフトマックス関数では、すべての入力に同じ数を足しても、出力される確率は変わらない。

    答えを見る

    答え ◯ 正しい

    exp(z + c) = exp(c) × exp(z)なので、分子と分母のexp(c)が打ち消し合います。

この用語の練習問題

12問
  1. #0145多クラス分類の実現方法難易度 標準・単一選択未回答
  2. #0036出力層の活性化関数の選択難易度 標準・組合せ未回答
  3. #0165活性化関数の形と勾配の伝わり方難易度 標準・単一選択未回答

ほかに9問あります。続けて解くと、すべての問題を順に出題します。

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術12

誤りを報告

表示設定

テーマ
文字の大きさ
問題演習