HOME > 情報系学生のための数学 >ロジスティック回帰

ロジスティック回帰

回帰モデルと見せかけて,実は分類モデルです.

当サイトでは述語論理の記述を多用します。
一般の書籍・論文ではあまり見られない記号を使用する場合もありますので、 本サイトで使用する数学記号 を参照しながらご覧ください。

ロジスティック回帰

概要

ロジスティック回帰 (Logistic Regression) は,名称に「回帰」とついていますが, 分類問題を学習することを目的としたアルゴリズムです. 所与のデータセットに対して,線形の識別境界を学習します. 確率論的には,生成モデルではなく識別モデルに分類されます.

確率的識別モデル

上述したようにロジスティック回帰は確率的識別モデル (probabilistic discriminative model) ですので, クラス事後確率 \(P(C_k|\bm{x})\) を推定します. 2クラス分類を考えると,Bayesの定理によるクラス事後確率の表現は以下のようになります.

\begin{align} P(C_1|\bm{x}) &=\frac{P(\bm{x}|C_1)P(C_1)} {P(\bm{x}|C_1)P(C_1)+P(\bm{x}|C_2)P(C_2)} \\[5pt] &=\frac{1}{1+e^{-a}}\quad\left(a\triangleq \ln\frac{P(\bm{x}|C_1)P(C_1)}{P(\bm{x}|C_2)P(C_2)}\right) \end{align}

最終行の形式はロジスティックシグモイド関数 (logistic sigmoid function) といい \[\sigma(a)\triangleq\frac{1}{1+e^{-a}}\] と表記します.

少し問題の見通しがよくなりましたね.クラス事前確率 \(P(C_k)\) は, データセットに含まれる各クラスの割合から容易に推定できます. しかし厄介なのは,クラスの条件付き確率密度 \(P(\bm{x}|C_k)\) です.

正規分布を仮定

ここで,クラスの条件付き確率密度 \(P(\bm{x}|C_k)\) が正規分布に従うと仮定します.

\[ P(\bm{x}|C_k) =\frac{1}{(2\pi)^{D/2}|\bm{\Sigma}|^{1/2}}\exp\left\{-\frac{1}{2} (\bm{x}-\bm{\mu}_k)^T\bm{\Sigma}^{-1}(\bm{x}-\bm{\mu}_k)\right\} \]

このとき,クラス事後確率は以下のように表されます.

\begin{align} P(C_1|\bm{x})&=\sigma\left( \ln\frac{P(\bm{x}|C_1)P(C_1)}{P(\bm{x}|C_2)P(C_2)}\right) \\[5pt] &=\sigma\left(\exp\left\{-\frac{1}{2}(\bm{x}-\bm{\mu}_1)^T \bm{\Sigma}^{-1}(\bm{x}-\bm{\mu}_1)+\frac{1}{2} (\bm{x}-\bm{\mu}_2)^T\bm{\Sigma}^{-1}(\bm{x}-\bm{\mu}_2)\right\} +\ln\frac{P(C_1)}{P(C_2)}\right) \\[5pt] &=\sigma(\bm{w}^T\bm{x}+w_0) \end{align}

ただし

\begin{align} \bm{w}&=\Sigma^{-1}(\bm{\mu}_1-\bm{\mu}_2) \\[5pt] w_0&=-\frac{1}{2}\bm{\mu}_1^T\bm{\Sigma}^{-1}\bm{\mu}_1+\frac{1}{2} \bm{\mu}_2^T\bm{\Sigma}^{-1}\bm{\mu}_2+\ln\frac{P(C_1)}{P(C_2)} \end{align}

さて,これでクラス事後確率をパラメトリックに表現することができました. 次はパラメータ \(\bm{\mu}_1,\bm{\mu}_2,\bm{\Sigma}\) を推定しよう! と言いたいところですが,ロジスティック回帰は識別モデルです. 背後のパラメータは気にせずに直接 \(\bm{w}\) と \(w_0\) を推定します.

最尤推定

尤度関数 (likelihood function) は次のように表されます.

\[ P(\bm{t}|\bm{w})=\prod_{n=1}^Ny_n^{t_n}\{1-y_n\}^{1-t_n} \]

負の対数尤度を計算することで,以下の交差エントロピー損失関数が得られます.

\[ E(\bm{w})=-\ln P(\bm{t}|\bm{w}) =-\sum_{n=1}^N\{t_n\ln y_n+(1-t_n)\ln(1-y_n)\} \]

この損失関数を最小化するために,勾配を計算します.

\[ \nabla E(\bm{w})=\sum_{n=1}^N(y_n-t_n)\bm{x}_n \]

これをもとに,反復法によってパラメータ \(\bm{w}\) を最適化します.