スコアの並びが、自信ある選択に変わるまで。
SRC·05
Source
最後の一手:スコアの並びを、一つの正直な答えに変える。
どのモデルも、最終層は選択肢ごとに生のスコア を出す。大きいほど「ありそう」だが、意味はそれだけ。答えを出す前に、その雑然とした並びを本物の確率 に変えねばならない——どれを、どれだけ確信して。その一手こそがsoftmax だ。
生のスコアは確率ではない。二つの掟がそう告げる。
p i ≥ 0 ∑ i p i = 1 p_i \ge 0 \qquad \sum_i p_i = 1
秤のない収穫のように: どのスコアにも確かな重みはあるが、共通のものさしがない——どれが全体の何割 かを誰も告げない。確率は二つの掟に従う:決して負にならない 、そして全部を足すと一になる 。生のスコアはどちらも破る。両方を一度に直す一手が要る。
第一手:各スコアを e の指数に乗せる。
e z i e z j = e z i − z j \dfrac{e^{z_i}}{e^{z_j}} = e^{\,z_i - z_j}
指数化は一度に二役こなす。どのスコアも正 にし——負の値さえも——しかも貪欲 に、差を引き伸ばす。坂を転がる雪玉のように、 わずかな先行が手のつけられない差になる。二つの比はその差 だけで決まり、1点増えるごとにスコアの重みは約2.7倍になる。
第二手:それぞれを合計で割る。
softmax ( z ) i = e z i ∑ j = 1 K e z j \operatorname{softmax}(\mathbf{z})_i = \dfrac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}
次に、指数をすべて足し合わせ、各値をその合計で割る。すると一気に、どれも正でしかも 足すとちょうど一になる——本物の確率分布だ。食欲で切り分ける一つのパイのように: 全体は決まっていて、最大のスコアがそのまま最大の一切れを取る。指数化して、正規化する——それが softmax だ。
なぜ soft なのか?敗者を決して黙らせないからだ。
∂ p i ∂ z j = p i ( δ i j − p j ) \dfrac{\partial p_i}{\partial z_j} = p_i\,(\delta_{ij} - p_j)
厳しい「最大を選べ」は勝者に全てを、残りに何も与えず——学ぶための傾き を残さない。softmax は勝者に最大の取り分を与えつつ、次点にも声を残し、どこでも滑らかに曲がる。写真判定のように: わずか鼻差の二着もちゃんと記録に残る。その滑らかな傾き(ここで p はそれ自身の出力)こそ、学習中に誤差が逆向きに流れ戻れる 理由だ。
高さではなく、差を読む。
softmax ( z + c 1 ) i = softmax ( z ) i \operatorname{softmax}(\mathbf{z} + c\mathbf{1})_i = \operatorname{softmax}(\mathbf{z})_i
どの スコアにも同じ数を足しても、確率はまったく動かない。softmax が気にするのはスコア間の差 だけで、絶対的な大きさは決して見ない。雲海の上の峰々のように: 大事なのは一つが他からどれだけ抜き出るかであって、遠い海面からの高さではない。これは計算の桁あふれを防ぐ静かな技でもある——まず最大のスコアを引いておけばいい。
二手で:正にして、合計を一にする。
これでエンジンの全部だ。指数化 して各スコアを正にし、差を広げる。正規化 して並びを一の取り分に変える。一本の回路につながった電球の列のように: どの選択肢も少しずつ電流を引き、本命が最も明るく灯り、合わせてちょうど一つ分を照らす。これがモデルの最後の一歩——内なる勘を、公けで比べられる確率に変えるのだ。
🌱 いつでも答えられる。だが「分からない」とは決して言えない。
softmax は常に完全な分布を返す——どの選択肢にも取り分が渡り、取り分は必ず一になる。まったくの無知さえ、きちんと整った自信ありげな配分として出てくる。空っぽの答えを差し出すすべはなく、「見当もつかない」 という枠もない。🌱 常に答えねばならぬよう作られた仕組みにとって、その自信は知っていることと同じなのか——それとも、私たちが押しつけた形にすぎないのか?
タップ → ↑スワイプで詳しく ↓スワイプで終了 クリックまたは → で次へ ↑ で詳しく esc で終了