スコアの並びが、自信ある選択に変わるまで。

SRC·05 Source
最後の一手:スコアの並びを、一つの正直な答えに変える。

最後の一手:スコアの並びを、一つの正直な答えに変える。

どのモデルも、最終層は選択肢ごとに生のスコアを出す。大きいほど「ありそう」だが、意味はそれだけ。答えを出す前に、その雑然とした並びを本物の確率に変えねばならない——どれを、どれだけ確信して。その一手こそがsoftmaxだ。
生のスコアは確率ではない。二つの掟がそう告げる。

生のスコアは確率ではない。二つの掟がそう告げる。

pi0ipi=1p_i \ge 0 \qquad \sum_i p_i = 1
秤のない収穫のように:どのスコアにも確かな重みはあるが、共通のものさしがない——どれが全体の何割かを誰も告げない。確率は二つの掟に従う:決して負にならない、そして全部を足すと一になる。生のスコアはどちらも破る。両方を一度に直す一手が要る。
第一手:各スコアを <em>e</em> の指数に乗せる。

第一手:各スコアを e の指数に乗せる。

eziezj=ezizj\dfrac{e^{z_i}}{e^{z_j}} = e^{\,z_i - z_j}
指数化は一度に二役こなす。どのスコアもにし——負の値さえも——しかも貪欲に、差を引き伸ばす。坂を転がる雪玉のように、わずかな先行が手のつけられない差になる。二つの比はそのだけで決まり、1点増えるごとにスコアの重みは約2.7倍になる。
第二手:それぞれを合計で割る。

第二手:それぞれを合計で割る。

softmax(z)i=ezij=1Kezj\operatorname{softmax}(\mathbf{z})_i = \dfrac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}
次に、指数をすべて足し合わせ、各値をその合計で割る。すると一気に、どれも正でしかも足すとちょうど一になる——本物の確率分布だ。食欲で切り分ける一つのパイのように:全体は決まっていて、最大のスコアがそのまま最大の一切れを取る。指数化して、正規化する——それが softmax だ。
なぜ <em>soft</em> なのか?敗者を決して黙らせないからだ。

なぜ soft なのか?敗者を決して黙らせないからだ。

pizj=pi(δijpj)\dfrac{\partial p_i}{\partial z_j} = p_i\,(\delta_{ij} - p_j)
厳しい「最大を選べ」は勝者に全てを、残りに何も与えず——学ぶための傾きを残さない。softmax は勝者に最大の取り分を与えつつ、次点にも声を残し、どこでも滑らかに曲がる。写真判定のように:わずか鼻差の二着もちゃんと記録に残る。その滑らかな傾き(ここで p はそれ自身の出力)こそ、学習中に誤差が逆向きに流れ戻れる理由だ。
高さではなく、差を読む。

高さではなく、差を読む。

softmax(z+c1)i=softmax(z)i\operatorname{softmax}(\mathbf{z} + c\mathbf{1})_i = \operatorname{softmax}(\mathbf{z})_i
どのスコアにも同じ数を足しても、確率はまったく動かない。softmax が気にするのはスコア間のだけで、絶対的な大きさは決して見ない。雲海の上の峰々のように:大事なのは一つが他からどれだけ抜き出るかであって、遠い海面からの高さではない。これは計算の桁あふれを防ぐ静かな技でもある——まず最大のスコアを引いておけばいい。
二手で:正にして、合計を一にする。

二手で:正にして、合計を一にする。

これでエンジンの全部だ。指数化して各スコアを正にし、差を広げる。正規化して並びを一の取り分に変える。一本の回路につながった電球の列のように:どの選択肢も少しずつ電流を引き、本命が最も明るく灯り、合わせてちょうど一つ分を照らす。これがモデルの最後の一歩——内なる勘を、公けで比べられる確率に変えるのだ。
🌱 いつでも答えられる。だが「分からない」とは決して言えない。

🌱 いつでも答えられる。だが「分からない」とは決して言えない。

softmax は常に完全な分布を返す——どの選択肢にも取り分が渡り、取り分は必ず一になる。まったくの無知さえ、きちんと整った自信ありげな配分として出てくる。空っぽの答えを差し出すすべはなく、「見当もつかない」という枠もない。🌱 常に答えねばならぬよう作られた仕組みにとって、その自信は知っていることと同じなのか——それとも、私たちが押しつけた形にすぎないのか?
タップ →↑スワイプで詳しく↓スワイプで終了