ロジスティック回帰(logistic regression)

1.概要

ロジスティック回帰(logistic regression)は,線形回帰モデルの出力をロジスティック関数で変換し,2クラスの確率値を出力してクラス識別を行う,シンプルな線形識別モデルである.3クラス以上の識別に対応させた一般系である多項ロジスティック回帰とは異なることを強調する場合に,ロジスティック回帰のことを二項ロジスティック回帰(binary logistic regression)と呼ぶ.

単純な線形回帰結果の値$\bm{w}^{\top}\bm{x}$をクラス確率として出力することで識別モデルとして線形回帰を使いたいという動機があった.しかし,線形回帰結果はそのままだと値が$-\inf ~ \inf $となってしまう.そこで,後段にロジスティック関数(1.2.1節)を加えることにより,線形回帰結果を確率値の$0~1$のあいだの値に押しつぶす(squashig)ことで,真ん中の値0.5を識別境界に用いることができる.この構成により,線形回帰を確率出力式の2クラス識別モデルとして使用できるようにしたものが,ロジスティック回帰である.

この記事ではまず1節で,基本となる「二項ロジスティック回帰の概要」と,ロジスティック回帰の理解に必要な事前知識として「ロジスティック関数とベルヌーイ分布」について先にみていく.その後,二項ロジスティック回帰・多項ロジスティック回帰の2つについて,それぞれ「モデルの詳細(2節)」と「誤差関数(3節)」を紹介するという記事構成である.

ロジスティック回帰は,パーセプトロンと等価であるゆえ,3層パーセプトロンやディープニューラルネットの機構を正しく理解するためには,ロジスティック回帰を理解しておくことも役にたつはずである.

1.1 ニ値ロジスティック回帰の概要

二項ロジスティック回帰は,入力ベクトル$\bm{x} \in \mathbb{R}^D$の$D$個の変数群と,出力スカラーの$y$の間の関係である条件付き確率$p(y \mid \bm{x})$を,線形回帰とロジスティックシグモイド関数の組み合わせにより表したモデルである.

具体的には,以下のベルヌーイ分布を,条件的確率変数 $y \mid \bm{x}$ へフィットさせる,識別モデルである:

\[
p_{\bm{w}}(y \mid \bm{x}) = \text{Ber}(y \mid \sigma(\bm{w}^{\top}\bm{x})) \tag{1.1}
\]

式(1.1)右辺では,入力に対する線形回帰モデル$\bm{w}^{\top}\bm{x}$の出力に,ロジスティック関数(1.2.1節で後述)を適用して確率値化したあと,その確率値をベルヌーイ分布のパラメータ確率に用いて最終的に1か0をクラス識別値として出力する.

これは,入力$\bm{x}$を 線形回帰モデルとロジスティック関数を用いてクラス確率$\sigma(\bm{w}^{\top}\bm{x})$に写像し,そのクラス確率が0.5以上なのかそれ未満かによって,入力サンプル$\bm{x}$を2クラスに識別することに相当している(2.1節).

ロジスティック回帰のパラメータの学習には,最尤推定,勾配降下法が用いられ,最適化の目的関数には交差エントロピー(cross-entorpy)が用いられる(3.1節, 3.2 節).また,より高度な最適化として,ニュートン法(レべンバーグ・マーカート法)や,ニュートン法のロジスティック回帰向け版のIRLS(Iteratively Reweighted Least Squares)などが用いられる.これら最適化アルゴリズムの解説は本記事では省略するので,参考書籍 [Murphy 2012], [原田 2017] などを参照にされたい.

また,同じ$\bm{x}$を入力とする異なる$K$個の二値ロジスティック回帰モデルを並列に用いることで,$K$クラス識別版の多項ロジスティック回帰を構築できる.その場合,ロジスティックシグモイド関数の$K$クラス一般化版であるソフトマックス関数(softmax function)に代えることで,$K$クラスの識別確率を事後確立として出力する設計になっている(2.2節, 3.2節)

1.2 前準備

1.2.1 ロジスティック関数

ロジスティック関数の元となるlogit関数は,以下の関数である:

\[
\text{logit} (p) = \log \left( \frac{p}{1-p} \right) \tag{1.2}
\]

これは,0から1の値を取る$p$に対して,式(1.2)の右辺の値を出力する関数である.

そしてロジスティック回帰で用いるロジスティック関数(ロジスティックシグモイド関数, 標準シグモイド関数)は,logit関数の逆関数である:

\begin{align}
\sigma(x) &= \text{logit}^{-1} (x)\\
&= \frac{\exp(x)}{1+\exp(x)}=\frac{1}{1+\exp(-x)} \tag{1.3}
\end{align}

このロジスティックシグモイド関数は,S字カーブにより,入力値のスカラー値を0 ~ 1の値に閉じ込め,更には0.5を識別境界とみなせる感じに,入力値を0か1付近の値へ圧縮できる.従って,入力を識別モデルの確率値に変換したい際に用いられる.

1.2.2 ベルヌーイ分布

ベルヌーイ分布は,コイントスのような「2クラスによる1度の確率的試行」において,どちらの1クラスが出るかの確率を表現した,指数分布型の離散的確率分布である.確率$p$で値$1$を取り,確率$1-p$で値$0$を取る確率分布である.

ベルヌーイ分布のパラメータ値を $\theta$(確率値)としたとき,ベルヌーイ分布の出力確率は以下のようになる:

\begin{align}
\text{Ber}(1 \mid \theta) &= \theta \\
\text{Ber}(0 \mid \theta) &= 1 – \theta
\end{align}

この2つの式を,1つの式にまとめた方が分岐無しで計算できて便利なので,以下のように表すことが多い:

\[
\text{Ber}(x|\theta) = \theta^{I(x=1)} (1 -\theta)^{I(x=0)} \tag{1.4}
\]

ここで,$I(\cdot)$は指示関数(Indicator function)を表す:

\begin{align}
I(x) =
\begin{cases}
1 & \text{if} & x = \text{True}\\
0 & \text{if} & x = \text{False}
\end{cases}\tag{1.5}
\end{align}

2 識別モデルの構成

2.1 ニ値ロジスティック回帰(binary logistic regression)のモデル詳細

ロジスティック関数のモデル
図1 ロジスティック関数のモデル

二値ロジスティック回帰は,ベクトル$\bm{x}$を入力として,バイナリー識別ラベル$\{C_p,C_n\}$の2クラスに相当する値の$\{1,0\}$どちらかを$\hat{y}$として最終的に出力するモデルである(図1).

まず線形回帰モデルを実行したあとに(図1-a),式(1.3)のロジスティックシグモイド関数$\sigma(\cdot)$(1.2.1節)を合成した以下の関数$p(\cdot)$により,ベルヌーイ分布に用いる(クラス$C_p$の)クラス確率値$p(\bm{x})$を出力する(図1-b):

\[
p(\bm{x}) = \sigma(\bm{w}^{\top}\bm{x}) = \frac{1}{1 + \exp (-\bm{w}^{\top}\bm{x})}\tag{2.1}
\]

これは線形回帰の出力全体を,ロジスティック関数によって,$0 \leq p \leq(\bm{x}) 1 $の間の値に押し潰す(squash)(※ ここでのロジスティック関数は,パーセプトロンにおける活性化関数に対応している).

そして,ロジスティック関数の中央値0.5を境界値とみなすことで,(ポジティブクラスの)クラス確率$p(\bm{x})$の値が0.5より上か下かにより,最終的なクラス識別結果$\{1,0\}$のどちらかを$\hat{y}$として出力する:

\begin{align}
\hat{y} =
\begin{cases}
1 & (p(\bm{x}) \geq 0.5 )\\
0 & (p(\bm{x}) < 0.5 )
\end{cases}
\end{align}

この出力$\hat{y}$は,以下のように,確率$p(\bm{x})$で値1($C_p$)を,確率$1- p(\bm{x})$で値0($C_n$)を出力する,以下のベルヌーイ分布に相当している(式(1.1)を参照):

\begin{align}
P(y=C_p \mid \bm{x}) &= p(\bm{x}) \tag{2.3}\\
P(y=C_n \mid \bm{x}) &= 1 – p(\bm{x})\tag{2.4}
\end{align}

2.1.1 線形モデルからの変形箇所を整理

言い換えると,(二値)ロジスティック回帰は,(確率的)線形回帰モデルを,以下の2点から一般化をおこない(確率的)識別モデルへと変形させたモデルであると言える:

  1. $y$をガウス分布(連続分布)でモデル化していたのを,ベルヌーイ分布(2値の離散分布)へ変更した.
  2. 回帰結果$\bm{w}^{\top}\bm{x})$を,0.5を識別境界面として確率値範囲内の値の0か1にほとんどの値を閉じ込めることができる「ロジスティック関数」を出力部分に追加した.

(このように,線形回帰から派生したモデルであるので,識別モデルなのに「ロジスティック回帰」と呼ばれている.)

2.1.2 クラス確率の解釈

ロジスティック回帰の出力の解釈
図2 ロジスティック回帰の出力の解釈

ロジスティック回帰の出力である,式(2.1)のクラス確率値$p(\bm{x})$について,その性質を少し見てみおこう.

クラス確率値$p(\bm{x})$を関数入力として,logit関数(オッズの対数)を計算することを試してみる.すると,元の(ロジスティック関数の入力であった)線形回帰モデル$p(\bm{x})$だけが出てくる:

\begin{align}
\log \frac{p(\bm{x})}{1-p(\bm{x})} = \bm{w}^{\top}\bm{x} \tag{2.5}
\end{align}

これは,logit関数とロジスティック関数が逆関数同士(1.2.1節)だからこういう変換が可能であり,$p(\bm{x})$に限らず,あらゆる確率に対してこの変換(元の入力確率$p$の抽出)が実施できる(図2).

更に,式(2.5)について,両辺の指数を取ってみる.すると,今度は以下のような関係が導かれる:

\begin{align}
\frac{p(\bm{x})}{1-p(\bm{x})} = \exp(\bm{w}^{\top}\bm{x}) \tag{2.6}
\end{align}

この式(2.6)の左辺はオッズである.つまり,式(2.5) => 式(2.6)で行ったことは以下の通りである:

  • 『ロジスティック回帰の出力クラス確率である「オッズの対数(logit)」を指数化すると,右辺の「入力$\bm{x}$の線形回帰を指数化した関数」として解釈できるようになる.
  • つまり,ロジスティック関数の出力の確率は,線形回帰の超平面$\bm{w}^{\top}\bm{x}$上のいずれかの点に射影できる.

2.2 多項ロジスティック回帰(multi-class logistic regression)のモデル

次に,2項ロジスティックモデルの$K$クラス向け一般化をすることで,多項ロジスティック回帰のモデル化について考えていきたい.

多項ロジスティック回帰では,$\bm{x}$を入力として,他クラス識別ラベルを確率ベクトル$\bm{y}$として出力する.$K (\geq 3)$クラスの識別を行う際に,クラス$k$に対応する2項ロジスティック回帰を$k$個合体させたモデルである.

多項ロジスティック回帰では,それぞれのクラスに対して個別のロジスティック回帰の重みベクトル$\bm{w}_k$を用意し,各出力の最後にソフトマックス関数を用いて正規化することで,最終出力を確率値化する.そして,出力は$K$クラスのカテゴリカル分布によりモデル化されている.

クラス$k$の識別担当のロジスティック回帰の,カテゴリカル分布による各クラス$C_k$の出力事後確率を$p(y = C_k \mid \bm{x})$とすると,二項ロジスティック回帰と同様に線形回帰したのちに,ソフトマックス関数で正規化した確率値を出力するようにモデル化されている:

\begin{align}
P(y = C_k \mid \bm{x})
= \frac{
\exp(\bm{w}_k^{\top}\bm{x})
}{
\sum_{j=1}^{K} \exp (\bm{w}_{j}^{\top}\bm{x})\tag{2.4}
}
\end{align}

ここで,ソフトマックス関数は,分母の総和が1で正規化することで,入力の$K$個の変数値を一括して確率値化できる関数である.つまりは,ロジスティックシグモイド関数群による$K$個の出力へ対応させたものである.

3. 誤差関数

3.1 ニ項ロジスティック回帰の最尤推定

尤度最大化による最尤推定(maximum likelihood)を用いた最適化から考えたい.

二項ロジスティック回帰では,予測モデルの分布はベルヌーイ分布であった.ベルヌーイ分布の対数尤度は式(1.4)の確率密度関数で計算できる.

よって,式(2.2), (2.3)を用いることで,最適化に用いる『サンプル$i$の「負の対数尤度」の総和』を,次のように計算できる:

\begin{align}
\mathcal{L}_{\bm{w}}
&= – \log \left[\Pi_{i=1}^{N}
\underbrace{ p_{\bm{w}}(y^{(i)} \mid \bm{x}^{(i)})}_{\text{尤度関数}}
\right] \\
&= – \log \left[ \Pi_{i=1}^{N} P(y^{(i)} =C_p | \bm{x}^{(i)})^{y^{(i)}} (1-P(y^{(i)} =C_p | \bm{x}^{(i)}))^{1-y^{(i)}} \right] \\
&= – \sum_{i=1}^{N} \left[ y^{(i)} P(y^{(i)} =C_p | \bm{x}^{(i)}) + (1-y^{(i)}) \log (1-P(y^{(i)} =C_p | \bm{x}^{(i)}))\right]\tag{3.1}
\end{align}

この,二値ロジスティック関数向けの式(3.1)の誤差関数を,二値交差エントロピー(binary cross-entropy)と呼ぶ.

3.2 多項クラスロジスティック回帰の最尤推定

多項ロジスティック回帰(2.2節)の場合,二項ロジスティック関数と同様に,以下のように負の対数尤度関数を最小化する:

\begin{align}
\mathcal{L}
&= – \log \left[ \Pi_{i=1}^{N} \Pi_{k=1}^{K} P(y^{(i)} =C_k \mid \bm{x}^{(i)})^{I(k=y^{(i)})} \right] \\
&= – \left[ \sum_{i=1}^{N} \sum_{k=1}^{K} I(k=y^{(i)}) \log P(y^{(i)} =C_k \mid \bm{x}^{(i)}) \right] \tag{3.2}
\end{align}

多値ロジスティック関数を学習する際に使う,式(3.2)の誤差関数を,交差エントロピー(binary cross-entropy)と呼ぶ.

従って,式(3.2)では,正解以外の$k-1$個のクラスでは$I(k=y^{(i)}) = 0$であるので,和の計算で考慮されなくなり,正解のクラスの項しか和として足されない.

4 まとめ

この記事では,線形回帰モデルをロジスティック関数により2値識別モデル化した「ロジスティック回帰」を紹介した.

2節では,2値出力版「二項ロジスティック回帰」(2.1節)と,Kクラス識別版「多項ロジスティック回帰」(2.2節)について,それぞれモデルの中身を紹介した.

また3節ではモデルの最適化に用いられる「負の対数尤度」誤差である「二値交差エントロピー」(3.1節)と,「交差エントロピー」(3.2節)の導出過程を確認した.ただし,それらの誤差関数を用いた最適化アルゴリズムの中身については,この記事では触れなかった.

References

  • [Cramer 2002] Cramer J. S. “The origins of logistic regression.” (2002): 4.

参照書籍

参照外部リンク

関連記事