![見出し画像](https://assets.st-note.com/production/uploads/images/144688141/rectangle_large_type_2_73e9636031f7761e14820f1aa919ad0f.png?width=800)
Softmax Temperatureについて
こんにちは!まあもです.
本日は,Softmax Temperature(温度付きソフトマックス関数)の理解を深めるために可視化をしてみます.
通常のソフトマックス関数について
ソフトマックス関数は,ロジット(予測スコア)を確率分布に変換するために使用される関数になります.具体的には、次のように定義されます:
$$
\text{Softmax}(x_i) = \frac{\exp\left(x_i\right)}{\sum_j\exp\left(x_j\right)}.
$$
ソフトマックス関数は、全てのロジットを0から1の範囲の値に変換し、その合計が1になるようにします。
例をプロットしてみると次のようになります.
![](https://assets.st-note.com/img/1718883739534-euUkjv1CLI.png?width=800)
下: ソフトマックスによる確率分布への変換
ソフトマックス関数を使うことで,それぞれのロジットの全確率が1になるように正規化できます.
温度付きソフトマックス関数について
温度パラメータ $${T(>0)}$$を導入し,ソフトマックス関数の出力を調整します.例えば,自己教師あり学習で有名なDINOの論文でも,Student-TeacherモデルのTeacher側の出力分布を制御するために利用されています.
温度という言葉は,統計力学のボルツマン分布またはギプス分布に由来します.
温度付きソフトマックス関数は次のように定義されます:
$$
\text{Softmax}_T(x_i) = \frac{\exp\left(x_i/T\right)}{\sum_j\exp\left(x_j/T\right)}.
$$
解釈としては,
$${T = 1}$$ : 通常のソフトマックス関数そのもの.
$${T > 1}$$ : 出力確率分布はより平坦になり,確率がより均一になる.
$${0 < T < 1}$$ : 出力確率分布はよりシャープになり,最も高いスコアに対応するクラスの確率が大きくなる.
では,$${T = 0.2, 0.5, 1.0, 3.0}$$の場合で描画してみます.
![](https://assets.st-note.com/img/1718885173645-zKHmYBzFPK.png?width=800)
左下の$${T = 1}$$の基準に比較してみると,$${0 < T < 1}$$の場合は,確率の高いところが強調される一方,$${T > 1}$$にすると,分布が均一になっていく様子がみてとれます.
以上,温度付きソフトマックス関数の簡単な解説でした.
ではまた.
この記事が気に入ったらサポートをしてみませんか?