ロジスティック回帰と 2 クラスソフトマックス関数の一致
目次
ロジスティック回帰
ロジスティック回帰モデルで、陽性 $y = 1$ である確率は次のように表されます:
$$ P(y = 1 \mid z) = \sigma(z) = \frac{1}{1 + e^{-z}} $$反転した、すなわち陰性 $y = 0$ である確率は
$$ P(y = 0 \mid z) = 1 - P(y = 1 \mid z) = 1 - \frac{1}{1 + e^{-z}} = \frac{e^{-z}}{1 + e^{-z}} $$です。
ここで、線形予測子 $z$ は入力特徴ベクトル $\mathbf{x}$ と重みベクトル $\mathbf{w}$ の内積に定数バイアスを加算したものです。
$$ z = \mathbf{w}^T \mathbf{x} + b $$ソフトマックス関数
ソフトマックス関数は次の形で与えられ、多クラス分類問題に対して各クラスの確率を出します:
$$ P(y = i \mid z) = \frac{e^{z_i}}{\sum_{k=0}^{K-1} e^{z_k}} $$ここで、 $K$ はクラスの総数であり、 $z_i$ はクラス $i$ の線形予測子
$$ z_i = \mathbf{W}^T_{i+1} \mathbf{x} + \mathbf{b}_{i+1} $$です。
二値分類 $K = 2$ の場合、クラスは $0$ と $1$ の 2 つしかありません。したがって、ソフトマックス関数での、陽性クラス $y = 1$ の確率および陰性クラス $y = 0$ の確率は次のようになります:
$$ P(y = 1 \mid z) = \frac{e^{z_1}}{e^{z_0} + e^{z_1}} $$$$ P(y = 0 \mid z) = \frac{e^{z_0}}{e^{z_0} + e^{z_1}} $$ロジスティック回帰と 2 クラスソフトマックス関数の一致
ソフトマックス関数の入力 $z_0$ を $0$ に揃え、
$$ z_0 = 0 $$$$ z_1 = z $$とすることができます。
この状態でソフトマックス関数の確率は以下になります:
$$ 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 = 0 \mid z) = \frac{e^{0}}{e^{0} + e^{z}} = \frac{1}{1 + e^{z}} = \frac{e^{-z}}{1 + e^{-z}} $$ロジスティック回帰の出力確率と 2 クラスソフトマックス関数の確率は一致することがわかります。
ソフトマックス関数の入力を変更してもいいのか
クラス $0$ とクラス $1$ のスコアを $z_0$ と $z_1$ としたとき、スコアを定数加算しても確率の比は変わりません。
たとえば、すべてのスコア $z_i$ に対して定数 $c$ を引いた場合:
$$ z_i' = z_i - c $$この変換後の確率は次のように変わります:
$$ P(y = i \mid z) = \frac{e^{z_i - c}}{\sum_{j} e^{z_j - c}} $$分子と分母から共通の $e^{-c}$ を取り除くと:
$$ 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}} $$このため、定数 $c$ を引いても確率自体は変わらないことがわかります。