Chapter 11
ソフトマックス(確率に変換)
ベクトルを0〜1の和が1になる確率分布のようにする関数。
チャプター別 ディープラーニング図
チャプターを進めるたびに、下の図が少しずつ埋まります。ここまでの構造です。
3をかけると 27(3の3乗)
27/31=27 ÷ 31
ディープラーニングで見るソフトマックス
ソフトマックスは複数のスコア(数値)を確率に変換する関数です。すべての値が0から1の間になり、合計がちょうど1になるので、確率として読めます。
式は です。eの累乗(e ≈ 2.718)を使うため、最も大きいスコアが大幅に強調され、他は相対的に小さくなります。1位と2位の差がはっきりします。
例: スコア [3, 1, 0] → e³≈20, e¹≈2.7, e⁰=1 → 合計 ≈ 23.7 → 確率 ≈ [0.84, 0.11, 0.04]。スコア3は1の3倍でしたが、確率では約8倍になります!
ソフトマックスはほぼすべての分類モデルの最終層で使われます。「この写真は70%犬、25%猫、5%鳥」のようにクラスごとの確率とモデルの確信度が分かります。
学習時に交差エントロピー損失と組み合わせると、勾配がきれいに安定して計算されます。「正解クラスの確率を上げ、他を下げる」ようにモデルが自然に学習します。
ソフトマックスの「すべて正で合計1」という性質は確率分布の定義そのものです。スコアを確率に変換する最も自然な方法として、統計的にも理論的にも正当化されています。
画像分類: モデルの最終層がスコア(ロジット)[5.2, 2.1, 0.8, …] を出力し、ソフトマックスで [0.70, 0.25, 0.05, …] のクラスごとの確率に変換します。最も高い確率のクラスが最終回答です。
チャットボット・翻訳: ChatGPTが次の単語を選ぶとき、語彙(数万語!)のすべてにスコアをつけ、ソフトマックスで確率に変換し、その確率に基づいて単語をサンプリングします。高確率の単語が多く選ばれますが、時に低確率の単語も選ばれて多様性が出ます。
アテンション機構: 翻訳で「どの入力単語に注目するか」の関連度スコアをソフトマックスに通して確率(重み)にします。この重みで入力の重み付き平均を取り、最も関連する部分を強調します。
計算の順番: ① (ロジット)を求める → ② を計算(問題では )→ ③ (合計)= すべてのを足す → ④ (各値を合計で割る)。この順番で進めます。
空白の求め方: Yが空白なら「その」を計算。が空白なら「」。Zが空白ならから逆算。が空白ならすべてのを足すだけです。
検算: 計算後、すべてのYが0から1の間で合計が1になっているか確認しましょう。なっていなければ計算ミスです。また、問題が を使うのか を使うのかも確認してください。
ソフトマックスは数を0~1の範囲にし、合計が1になるようにする関数です。 を計算し、 を求め、それぞれを合計()で割ると確率のように使えます。
スコア() → → 合計で割る → 確率()
多クラス分類の最後の層でよく使われます。
例: 計算の流れ(1通り)
問題
, , の順に計算し、空欄(?)を埋めなさい。
この問題では e を 3 として計算します。つまり です。(例:Z=1 → 3、Z=2 → 9)
スコア() → → 合計()で割る → 確率()