ソフトマックスSoftmax
複数の点数を合計100%の確率に変える計算
- ソフトマックスは、ばらばらな点数を複数まとめて合計が100%になるよう配分する計算です。
- 候補一つだけを見ても取り分は決まりません。ほかの候補の点数まで一緒に見る必要があります。
- 配分したあとも順序はそのままです。点数が高いほうが取り分も大きくなります。
- 点数の差をそのまま移さず広げてから配分します。少し先んじるだけでも取り分は大きく開きます。
- 出てきたパーセントはモデルがどれだけ正しいかではなく、候補どうしの比率にすぎません。
目次
1たとえで理解する
商店ビル一棟に水道料金の請求書が一枚届きます。店ごとに水道メーターが別々に付いていて、管理人はそれぞれの目盛りを全部記録したあと合計を出し、各店が全体の何パーセントを使ったかを計算して、その比率で料金を分けます。
メーターに表示された数字だけでは払う額は決まりません。隣の店の目盛りまで全部集めて合計を作ってはじめて、自分の取り分が出てきます。自分の目盛りが先月と同じでも、隣の店が水をたくさん使った月には、自分の占める比率は小さくなります。
ソフトマックスがこの割り算です。モデルが候補ごとに書き留めた生の点数を全部集め、100%の中でそれぞれの取り分に分けます。目盛りに当たるその生の点数を、ロジットと呼びます。
2くわしく
候補一つだけ見ても決まりません
モデルは次に来る断片を選ぶ前に、候補ごとに点数を付けておきます。この点数は目盛りのない生の数字なので、一つだけ切り取ってみても高いのか低いのかもわかりません。
ソフトマックスは候補全体を一つの束として計算します。全部の点数を集めて合計を作ったうえで、各候補がその合計の中で占める分を取り分として与えます。だからある候補の取り分は、自分の点数だけでなく、ほかの候補がどんな点数を受け取ったかによっても変わります。
競争相手が弱ければ同じ点数でも大きな取り分をもらえ、みな似たように高ければ取り分は細かく分かれます。候補の数が増えるほど一つ一つの取り分が小さくなるのも同じ理由です。
順序はそのまま、目盛りだけが変わります
割り算を経ても候補の順序は少しも変わりません。点数板で先んじていた候補は取り分でも先んじます。順位を決めようとする計算ではなく、人が読んで見比べられる目盛りに移そうとする計算だからです。
パーセントに変えておくと便利なことが多くあります。何パーセント以上の候補だけを残すという形で切れますし、確率に応じて無作為に一つを選んで答えに多様性を持たせることもできます。学習のとき正解とどれだけずれているかを測るのにも、確率の形が扱いやすいのです。
差を広げてから配分します
名前に付いた「ソフト」は、最高点一つだけを選んで独り占めさせないという意味です。一位に100%を与えて残りを0%にする代わりに、二位や三位にもいくらか残しておきます。おかげで際どく分かれた状況が結果にそのまま表れます。
かといって点数の比率をそのまま移すわけでもありません。点数の差は取り分に移るときにより大きく広がります。少し先んじた候補がかなり大きな取り分を持っていき、遅れた候補の取り分は急速に0に近づきます。点数の数コマの差で答えが事実上一つに固まってしまうことが起きる理由です。
温度の設定がこの広がり方を調節します。温度を下げると間隔がさらに広がって一位がほぼ全部持っていき、上げると間隔が狭まって下位の候補にも取り分が回ります。
最後の段階だけで使われるわけではありません
言語モデルでソフトマックスがいちばん目立つ場所は、次の断片を選ぶ直前です。しかしモデルの内側でも何度も使われます。
文の中のどの単語にどれだけ集中するかを決めるアテンションが代表例です。単語ごとに関連点数を付けたあと、その点数を100%の中で分けて集中の比率とします。前で見たヘッドごとの重み付けも、どのヘッドにどれだけ重みを与えるかをこの方式で決めます。
写真を複数の種類に分けるモデルも、最後にこの計算を付けます。結果画面に出るパーセントが全部足して100%になるのは、このためです。
3もう少し正確に
ソフトマックスは、点数一つ一つを必ず正の値に変えたあと、その値の合計でそれぞれを割る計算です。だからマイナスの点数も扱え、結果はすべて0と1の間に収まり、合計は常に1になります。
たとえがずれる点もあります。水道メーターは目盛りの比率がそのまま料金の比率になりますが、ソフトマックスは点数の差を膨らませてから配分します。目盛りが二倍の店の料金が十倍になるようなもので、比率だけを考えると結果が予想より一方に偏って見えます。また水道メーターの目盛りは実際に使った水の量という実体がはっきりしていますが、モデルの点数にはそうした実体がありません。だから取り分が90%と出たからといって、その答えが十回中九回正しいという意味ではありません。候補どうしでそれだけ先んじていたという印にすぎないのです。候補一覧に最初からない答えは、0%としても表れないという点も覚えておくとよいでしょう。
4やってみる
5よくある誤解
ソフトマックスが答えを選ぶと思われがちですが、実際には取り分を分けるだけで、選ぶ作業はそのあとの段階で別に行われます。
90%と出れば十回に九回は正しいと見なされがちですが、実際には候補どうしの比率にすぎず、正解率とは違う値です。
点数を比率のまま移すと思われがちですが、実際には差を広げて配分するため、先んじた候補がはるかに大きな取り分を持っていきます。
7ひとこと要約
つまりソフトマックスは、ばらばらな生の点数を水道メーターの目盛りのように集め、合計が100%になるよう取り分を分ける計算です。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02