見出し画像

Softmax Temperatureについて

こんにちは!まあもです.

本日は,Softmax Temperature(温度付きソフトマックス関数)の理解を深めるために可視化をしてみます.

通常のソフトマックス関数について

ソフトマックス関数は,ロジット(予測スコア)を確率分布に変換するために使用される関数になります.具体的には、次のように定義されます:

$$
\text{Softmax}(x_i) = \frac{\exp\left(x_i\right)}{\sum_j\exp\left(x_j\right)}.
$$

ソフトマックス関数は、全てのロジットを0から1の範囲の値に変換し、その合計が1になるようにします。

例をプロットしてみると次のようになります.

上: ロジット(予測スコア)
下: ソフトマックスによる確率分布への変換

ソフトマックス関数を使うことで,それぞれのロジットの全確率が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}$$の場合で描画してみます.

左下の$${T = 1}$$の基準に比較してみると,$${0 < T < 1}$$の場合は,確率の高いところが強調される一方,$${T > 1}$$にすると,分布が均一になっていく様子がみてとれます.

以上,温度付きソフトマックス関数の簡単な解説でした.
ではまた.

この記事が気に入ったらサポートをしてみませんか?