名古屋出身ソフトウェアエンジニアのブログ

ロジスティック回帰と 2 クラスソフトマックス関数の一致

ロジスティック回帰

ロジスティック回帰モデルで、陽性 y=1y = 1 である確率は次のように表されます:

P(y=1z)=σ(z)=11+ez P(y = 1 \mid z) = \sigma(z) = \frac{1}{1 + e^{-z}}

反転した、すなわち陰性 y=0y = 0 である確率は

P(y=0z)=1P(y=1z)=111+ez=ez1+ez P(y = 0 \mid z) = 1 - P(y = 1 \mid z) = 1 - \frac{1}{1 + e^{-z}} = \frac{e^{-z}}{1 + e^{-z}}

です。

ここで、線形予測子 zz は入力特徴ベクトル x\mathbf{x} と重みベクトル w\mathbf{w} の内積に定数バイアスを加算したものです。

z=wTx+b z = \mathbf{w}^T \mathbf{x} + b

ソフトマックス関数

ソフトマックス関数は次の形で与えられ、多クラス分類問題に対して各クラスの確率を出します:

P(y=iz)=ezik=0K1ezk P(y = i \mid z) = \frac{e^{z_i}}{\sum_{k=0}^{K-1} e^{z_k}}

ここで、 KK はクラスの総数であり、 ziz_i はクラス ii の線形予測子

zi=Wi+1Tx+bi+1 z_i = \mathbf{W}^T_{i+1} \mathbf{x} + \mathbf{b}_{i+1}

です。

二値分類 K=2K = 2 の場合、クラスは 0011 の 2 つしかありません。したがって、ソフトマックス関数での、陽性クラス y=1y = 1 の確率および陰性クラス y=0y = 0 の確率は次のようになります:

P(y=1z)=ez1ez0+ez1 P(y = 1 \mid z) = \frac{e^{z_1}}{e^{z_0} + e^{z_1}} P(y=0z)=ez0ez0+ez1 P(y = 0 \mid z) = \frac{e^{z_0}}{e^{z_0} + e^{z_1}}

ロジスティック回帰と 2 クラスソフトマックス関数の一致

ソフトマックス関数の入力 z0z_000 に揃え、

z0=0 z_0 = 0 z1=z z_1 = z

とすることができます。

この状態でソフトマックス関数の確率は以下になります:

P(y=1z)=eze0+ez=ez1+ez=11+ez P(y = 1 \mid z) = \frac{e^{z}}{e^{0} + e^{z}} = \frac{e^{z}}{1 + e^{z}} = \frac{1}{1 + e^{-z}}

同様に:

P(y=0z)=e0e0+ez=11+ez=ez1+ez P(y = 0 \mid z) = \frac{e^{0}}{e^{0} + e^{z}} = \frac{1}{1 + e^{z}} = \frac{e^{-z}}{1 + e^{-z}}

ロジスティック回帰の出力確率と 2 クラスソフトマックス関数の確率は一致することがわかります。

ソフトマックス関数の入力を変更してもいいのか

クラス 00 とクラス 11 のスコアを z0z_0z1z_1 としたとき、スコアを定数加算しても確率の比は変わりません。

たとえば、すべてのスコア ziz_i に対して定数 cc を引いた場合:

zi=zic z_i' = z_i - c

この変換後の確率は次のように変わります:

P(y=iz)=ezicjezjc P(y = i \mid z) = \frac{e^{z_i - c}}{\sum_{j} e^{z_j - c}}

分子と分母から共通の ece^{-c} を取り除くと:

P(y=iz)=eziecjezjec=ezijezj P(y = i \mid z) = \frac{e^{z_i} \cdot e^{-c}}{\sum_{j} e^{z_j} \cdot e^{-c}} = \frac{e^{z_i}}{ \sum_{j} e^{z_j}}

このため、定数 cc を引いても確率自体は変わらないことがわかります。