Chapter 11

ソフトマックス(確率に変換)

ベクトルを0〜1の和が1になる確率分布のようにする関数。

チャプター別 ディープラーニング図

チャプターを進めるたびに、下の図が少しずつ埋まります。ここまでの構造です。

Softmaxスコア→確率(例: eを3とする)
スコア
3
1
0
中間
27
3
1
3のべき乗
3³=27
3¹=3
3=1
確率
27/31
3/31
1/31
合計で割る
27÷31=27/31
3÷31=3/31
1÷31=1/31

3をかけると 27(3の3乗)

27/31=27 ÷ 31

ディープラーニングで見るソフトマックス

ソフトマックス複数のスコア(数値)を確率に変換する関数です。すべての値が0から1の間になり、合計がちょうど1になるので、確率として読めます。

式は softmax(xi)=exijexj\mathrm{softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} です。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が次の単語を選ぶとき、語彙(数万語!)のすべてにスコアをつけ、ソフトマックスで確率に変換し、その確率に基づいて単語をサンプリングします。高確率の単語が多く選ばれますが、時に低確率の単語も選ばれて多様性が出ます。

アテンション機構: 翻訳で「どの入力単語に注目するか」の関連度スコアをソフトマックスに通して確率(重み)にします。この重みで入力の重み付き平均を取り、最も関連する部分を強調します。

計算の順番: ① Z=WX+bZ = W \cdot X + b(ロジット)を求める → ② eZe^Z を計算(問題では e3e \approx 3)→ ③ Σ\Sigma(合計)= すべてのeZe^Zを足す → ④ Y=eZΣY = \frac{e^Z}{\Sigma}(各値を合計で割る)。この順番で進めます。

空白の求め方: Yが空白なら「そのeZ÷Σe^Z \div \Sigma」を計算。eZe^Zが空白なら「Y×ΣY \times \Sigma」。Zが空白ならeZe^Zから逆算。Σ\Sigmaが空白ならすべてのeZe^Zを足すだけです。

検算: 計算後、すべてのYが0から1の間合計が1になっているか確認しましょう。なっていなければ計算ミスです。また、問題が e3e \approx 3 を使うのか e2.718e \approx 2.718 を使うのかも確認してください。

ソフトマックスは数を0~1の範囲にし、合計が1になるようにする関数です。Z=WX+bZ = W \cdot X + b を計算し、eZe^Z を求め、それぞれを合計(Σ\Sigma)で割ると確率のように使えます。

スコア(ZZ) → 3Z3^Z → 合計で割る → 確率(YY)

XX
1
1
\cdot
W
1
1
0
1
+
b
1
1
=
ZZ
3
2
3Z3^Z
27
9
Σ\Sigma
36
YY
3/4
1/4

多クラス分類の最後の層でよく使われます。

例: 計算の流れ(1通り)

Z1=11+11+1=3Z_1 = 1 \cdot 1 + 1 \cdot 1 + 1 = 3
Z2=01+11+1=2Z_2 = 0 \cdot 1 + 1 \cdot 1 + 1 = 2
3Z1=33=273^{Z_1} = 3^3 = 27
3Z2=32=93^{Z_2} = 3^2 = 9
Σ=27+9=36\Sigma = 27 + 9 = 36
Y1=3Z1Σ=2736=34Y_1 = \frac{3^{Z_1}}{\Sigma} = \frac{27}{36} = \frac{3}{4}
Y2=3Z2Σ=936=14Y_2 = \frac{3^{Z_2}}{\Sigma} = \frac{9}{36} = \frac{1}{4}

問題

Z=WX+bZ = W \cdot X + b, eZ    (e3)e^Z \;\; (e \approx 3), Y=eZΣY = \frac{e^Z}{\Sigma} の順に計算し、空欄(?)を埋めなさい。

この問題では e を 3 として計算します。つまり eZ=3Ze^Z = 3^Z です。(例:Z=1 → 3、Z=2 → 9)

スコア(ZZ) → 3Z3^Z → 合計(Σ\Sigma)で割る → 確率(YY)

X
1
1
·
W
1
1
1
-1
+
b
-1
1
=
Z
1
1
eZ
3
Σ\Sigma
6
Y
1/2
1/2
確率
0.5
0.5
1 / 20