Softmax と温度
ロジットを softmax(z/T) で確率に変換し、温度 T で分布の鋭さが変わる様子を見ます。次トークン選択の「貪欲 ⇔ 多様」を体感します。
1.00
候補トークンのロジット z(モデルの「生スコア」)
" cat"4.0
" dog"3.2
" fish"2.0
" bird"1.0
" car"-1.0
温度 T
—
最有力トークン p_max
—
エントロピー H(bit)
—
サンプリング回数
—
softmax 確率 p(温度 T 適用後)
サンプリング頻度(棒)と理論確率 p(破線マーカー)
言語モデルは次のトークンごとにロジット z(生のスコア)を出します。これを確率に変えるのが
softmax:
温度 T は「鋭さ」のつまみです。T → 0 で最大ロジットに確率が集中(ほぼ 1)して常に同じ語を選ぶ貪欲に、 T を上げると分布が平らになり弱い候補も選ばれやすくなって多様になります。
スライダーで T とロジットを変え、棒グラフの変形と、サンプリングを繰り返したときの偏り方を確かめましょう。
p_i = exp(z_i / T) / Σ_j exp(z_j / T)。温度 T は「鋭さ」のつまみです。T → 0 で最大ロジットに確率が集中(ほぼ 1)して常に同じ語を選ぶ貪欲に、 T を上げると分布が平らになり弱い候補も選ばれやすくなって多様になります。
スライダーで T とロジットを変え、棒グラフの変形と、サンプリングを繰り返したときの偏り方を確かめましょう。
いま何が起きている?
ここがポイント
- p_i = exp(z_i/T) / Σ exp(z_j/T) ── softmax はロジットを足して 1 になる確率に変換する。
- T → 0 は貪欲(argmax) ── 最大ロジットの確率が 1 に近づき、出力が決定的になる。
- T を上げると平坦化 ── 差が縮まり弱い候補も拾われ、エントロピーが増えて多様になる。
- ロジットの「差」だけが効く ── 全体に定数を足しても p は不変。T はその差を割り算で拡大・縮小する。