機械学習3:ロジスティック回帰モデル

要点まとめ

ロジスティック回帰モデルは2クラス分類問題に用いる。入力はm次元のベクトルで、目的変数は0or1の値になる。 ロジスティック回帰の予測モデルは、線形回帰モデルとシグモイド関数\sigma (x) = \frac{1}{1+\exp (-ax)}を組み合わせた、\hat{y} = \sigma (\boldsymbol{w}^T\boldsymbol{x}) で表される。

モデルの学習は、負の尤度関数の微分を用いて、確率的勾配降下法(SGD)等を用いて最適解を探索する。

演習実施

f:id:yui-gen-ron:20211114023713p:plain

ロジスティック回帰モデルの数式

説明変数

 
  \displaystyle 
  \boldsymbol{x} = (x_1, x_2, \cdots , x_m)^T \in \mathbb{R}

目的変数

 
  \displaystyle 
  y \in \{0,1\}

パラメータ

 
  \displaystyle 
  \boldsymbol{w} = (w_1, w_2, \cdots, w_m)^T \in \mathbb{R}

線形結合

 
  \displaystyle 
  \hat{y} = \boldsymbol{w}^T \boldsymbol{x} + w_0 = \sum_{j=1}^m w_j x_j + w_0

線形回帰モデルと似ているが、目的変数が0or1という点が異なる。ここで、線形結合の出力  \hat{y} を0~1の範囲に変換する関数としてシグモイド関数を導入。

シグモイド関数

 
  \displaystyle 
  \sigma (x) = \frac{1}{1+\exp(-ax)}

f:id:yui-gen-ron:20211113003743p:plain
シグモイド関数のグラフ

  • 入力は実数全体、出力は0~1の範囲
  • 単調増加関数
  • クラス1に分類される確率を表現する目的で使用する。

シグモイド関数微分

 
  \displaystyle 
  \frac{\partial \sigma (x)}{\partial x} = \frac{\partial}{\partial x} \Bigl( \frac{1}{1+\exp(-ax)} \Bigr) \\
  \displaystyle 
  = (-1) \cdot \{ 1 + \exp(-ax) \}^{-2} \cdot \exp(-ax) \cdot (-a) \\
  \displaystyle 
  = \frac{a \exp(-ax)}{\{ 1 + \exp(-ax)\}^2} \\
  \displaystyle 
  = \frac{a}{1+\exp(-ax)} \cdot \frac{1+\exp(-ax)-1}{1+exp(-ax)} \\
  \displaystyle 
  = a \sigma(x) ( 1 - \sigma(x) )

式を自分でも導出できるようにすることと、

 
  \displaystyle 
  \frac{\partial \sigma (x)}{\partial x} = \sigma(x) ( 1 - \sigma(x) )

この形は暗記する。

シグモイド関数を用いて \hat{y} を0~1の範囲に対応させる

P(Y=1|\boldsymbol{x}) は、説明変数\boldsymbol{x} が与えられたときにy=1となる確率を表す。

 
  \displaystyle 
  P(Y=1|\boldsymbol{x}) = \sigma(w_0 + w_1 x_1 + \cdots + w_m x_m)

 \boldsymbol{x}_i が与えられたときに、y=1となる確率p_iを、下記のように表す.

 
  \displaystyle 
  %p_i = \sigma(w_0 + w_1x_{i1} + \cdots + w_m x_{im}) \\
  p_i = \sigma(\boldsymbol{w}^T \boldsymbol{x})

一般的には、p_i \geqq 0.5の場合は y1と予測、それ以外は0と予測する。

ベルヌーイ分布

コイントスのように、確率p1、確率1-p0を取る離散確率分布を ベルヌーイ分布 という

ベルヌーイ分布に従う確率変数Y

 
  \displaystyle 
  Y \sim Be(p)

Y=1Y=0になる確率をまとめて表現すると、

 
  \displaystyle 
  p(y) = p^y (1-p)^{1-y}

確認のためにこの式に対してy=1とするとp(1)=p が得られ、y=0とするとp(0)=(1-p) が得られる。

ベルヌーイ分布の期待値

 
  \displaystyle 
  E(X)=\sum_{k=0}^{1}kP(X=k)\\ 
  =0×(1-p)+1×p\\
  =p

ベルヌーイ分布の分散

 
  \displaystyle 
  E(X^2)=\sum_{k=0}^{1}k^2P(X=k)\\ 
  =0^{2}×(1-p)+1^{2}×p\\ 
  =p\\\\ 
  V(X)=E(X^2)-{(E(X))}^2\\ 
  =p(1-p) 

最尤推定

ベルヌーイ分布の最尤推定

下の例のように色分けして表記する

  • 既知と考える変数\color{magenta}{既知 \alpha}

  • 未知と考える変数\color{blue}{未知 \beta}

確率が既知\color{magenta}{p}のベルヌーイ分布1回の試行でy=y_1になる確率

 
P(y_1) = p^{y_1}(1-p)^{1-y_1}

確率が既知\color{magenta}{p}のベルヌーイ分布n回の試行で、y_1y_nが同時に起こる確率

 
  \displaystyle 
  P(y_1, y_2, \cdots ,y_n;p) = \prod_{i=1}^n {\color{magenta}{p}}^{y_i} (1-{\color{magenta}{p}})^{1-y_i}


確率が未知\color{blue}{p} のベルヌーイ分布n回の試行で、y_1~y_nが得られた際の尤度関数

 
 \newcommand{\kichi}[1] {{\color{magenta}{#1}}}
 \newcommand{\michi}[1] {{\color{blue}{#1}}}
  \displaystyle 
  P(\kichi{y_1, y_2, \cdots ,y_n};p) = \prod_{i=1}^n \michi{p}^{y_i} (1-\michi{p})^{1-y_i}


ロジスティック回帰モデルの最尤推定

既知の\color{magenta}{\boldsymbol{x}} , \color{magenta}{\boldsymbol{y}} から、尤もらしい未知のパラメータ\color{blue}{\boldsymbol{w}} を探索する。

確率は、

 
 \newcommand{\kichi}[1] {{\color{magenta}{#1}}}
 \newcommand{\michi}[1] {{\color{blue}{#1}}}
  \displaystyle 
  P(Y=\kichi{y_1}|\kichi{\boldsymbol{x}_1}) = \sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}_1})^\kichi{y_1} (1-\sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}_1}))^{1-\kichi{y_1}} \\
  P(Y=\kichi{y_2}|\kichi{\boldsymbol{x}_2}) = \sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}_2})^\kichi{y_2} (1-\sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}_2}))^{1-\kichi{y_2}} \\
  \cdots \\
  P(Y=\kichi{y_n}|\kichi{\boldsymbol{x}_n}) = \sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}_n})^\kichi{y_n} (1-\sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}_n}))^{1-\kichi{y_n}} \\

尤度関数は、

 
  \displaystyle{
  P(\kichi{y_1, y_2, \cdots , y_n} | \michi{w_1, w_2, \cdots , w_n}) = \prod_{i=1}^{n} \michi{p_i}^\kichi{y_i} ( 1 - \michi{p_i})^{1-\kichi{y_i}} \\
  = \prod_{i=1}^{n} \sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}})^\kichi{y_i} (1-\sigma(\michi{\boldsymbol{w}}^T \kichi{\boldsymbol{x}}))^{1-\kichi{y_i}} \\
  = L(\michi{\boldsymbol{w}})
}

負の対数尤度関数を考えると都合が良い

  • 対数をを取ることで、積を和の形に変換可能
  • 尤度関数は非常に小さな値になり、浮動小数点で扱うと不都合が生じる場合があるが、対数を取ると値が小さくならずに都合が良い。
  • 対数関数は単調増加である
  • 微分可能
  • 尤度関数は最大値を求めたいが、負の値を取ることで「最小二乗法の最小化」と合わせる。
 
\newcommand{\oneton}[1] {{#1}_1, {#1}_2, \cdots , {#1}_n}  \displaystyle {
  E(\oneton{w}) = - \log L(\oneton{w}) \\
  = - \sum_{i=1}^n \{ y_i \log p_i + (1 - y_i) \log(1 - p_i) \}
}

勾配降下法 \newcommand{\partialdiff}[2] {\frac{\partial {#1}}{\partial{#2}}} \boldsymbol{w}^{k+1} = \boldsymbol{w}^{k} + \eta \partialdiff{E(\boldsymbol{w})}{\boldsymbol{w}} を使用するために、負の対数尤度関数について、パラメータ\boldsymbol{w}偏微分を求める。

 \displaystyle{
  \displaystyle 
  \partialdiff{E(\boldsymbol{w})}{\boldsymbol{w}} = \sum_{i=1}^{n} \partialdiff{E_i(\boldsymbol{w})}{p_i} \partialdiff{p_i}{\boldsymbol{w}} \\
  = \sum_{i=1}^{n} \bigl( \frac{y_i}{p_i} - \frac{1 - y_i}{1-p_i} \bigr) p_i (1 - p_i) \boldsymbol{x}_i \\
  = - \sum_{i=1}^{n} (y_i - p_i) \boldsymbol{x}_i

}

これを勾配降下法に当てはめると、

 \displaystyle{
  \displaystyle 
  \boldsymbol{w}^{k+1} = \boldsymbol{w}^{k} + \eta (y_i-p_i) \boldsymbol{x}_i
}

評価指標

評価指標については、別途まとめる