しまてく

学んだ技術を書きためるブログ

ITエンジニアのための機械学習理論入門 5-1

5章 ロジスティック回帰とROC曲線: 学習モデルの評価方法

  • ロジスティック回帰は、パーセプトロンと同じ分類アルゴリズムの一つ。
  • 確率を用いた最尤推定法でパラメーターを決定する点が異なる。
  • 確率を用いる事で、未知のデータの属性を推定する際に違いがある。
    • 「このデータは$t=1$である」という単純なものではなく
    • 「このデータが$t=1$である確率は70%」というような感じになる。
  • さらにROC曲線を用いて、学習モデルを評価する方法を解説する。

5.1 分類問題への最尤推定法の適用

  • 最尤推定法では、適当に決めた「あるデータが得られる確率」から、 トレーニングセットとして与えられる確率(尤度関数)を計算する。
  • 尤度関数が最大になるという条件から、設定した確率の式のパラメーターを求める。

5.1.1 データの発生確率の設定

  • まずはパーセプトロンと同様に2種類のデータを分類する直線を表す線形関数$f(x, y)$を用意する。

$$ f(x, y) = \omega_0 + \omega_1x + \omega_2y \tag{5.1} $$

  • 図5.1(本文参照)のように $f(x, y) = 0$で分割線が決まった場合、
  • 分割線に直行する方向に移動すると $- \infty < f(x, y) < \infty $の範囲で$f(x, y)$の値が変化する。
  • 次に、$(x, y)$平面上の任意の点で、得られたデータが$t=1$である確率を考える。
  • 図5.1(本文参照)において、分割線から右上に離れるほど$t=1$である確率は高いと考える。
  • 逆に左下に離れれば低くなると考える。
  • 分割線上では$t=1$と$t=0$の確率は同じ($\dfrac{1}{2}$)。
  • また、今回データは2つしか無いので、$t=1$となる確率を$P$とすると$t=0$となる確率は$1-P$となる。
  • 得られた全てのデータについて、$t=1$である確率を対応させると、図5.2の下のグラフになる。
  • これをロジスティック関数のグラフと言う。

  • また、ロジスティック関数は以下の式で表せる。

$$ σ(a) = \dfrac{1}{1 + e^{-a}} \tag{5.2} $$

  • この式において、$a$の値を$-\infty$から$\infty$まで変化させると $ σ{(a)} $は0から1に向かって滑らかに変化する。
  • $a=0$ではちょうど$\dfrac{1}{2}$になる。
  • この関数の$a$として$f(x, y)$を代入すると、図5.2の対応関係が得られる。

以上をまとめると、

  • 点$(x, y)$で得られたデータが$t=1$である確率は次式で表せる。

$$ P(x, y) = σ{(\omega_0 + \omega_1x + \omega_2y)} \tag{5.3} $$

  • 反対に、$t=0$となる確率は$1 - P(x, y)$となる。

この確率から、トレーニングセットとして与えられたデータ${(x_n, y_n, t_n)}_{n=1}^{N}$ が得られる確率を考える。

  • あるデータ$(x_n, y_n, t_n)$が得られる確率は、$t=1$と$t=0$で次のように場合分けされる。

$$ t=1 の場合 : P(x_n, y_n) \tag{5.4} $$

$$ t=0 の場合 : 1 - P(x_n, y_n) \tag{5.5} $$

  • 数学的な技巧を使うと以下のようにまとめて書くことができる。

$$ P_n = P(x_n, y_n)^{t_n}{1 - P(x_n, y_n)}^{1-t_n} \tag{5.6} $$

  • ここで(5.6)に(5.3)を代入すると次のようになる。

$$ P_n = σ(\omega_0 + \omega_1x_n + \omega_2y_n)^{t_n}{1 - σ(\omega_0 + \omega_1x_n + \omega_2y_n)}^{1-t_n} $$

  • $σ(\omega_0 + \omega_1x_n + \omega_2y_n)$は、「n番目のデータが$t=1$である確率」を表す。
  • これを$z_n$と定義し、さらに行列を用いて表すと以下のようになる。

$$ P_n = z_n^{t_n}(1 - z_n)^{1-t_n} \tag{5.9} $$

  • $z_n$の定義は以下になる。 $$ z_n = σ(w^T\phi_n) \tag{5.10} $$

  • $w$と$\phi$はパーセプトロンの計算で用いた(4.12)、(4.13)と同じ。

トレーニングセットに含まれる全てのデータをまとめて考えると、これらが得られる確率$P$は、各データが得られる確率($P_n$)(5.9)の積になる。

$$ P = Π_{n=1}^{N}P_n = Π_{n=1}^{N}z_n^{t_n}(1-z_n)^{1-t_n} \tag{5.13} $$

  • 確率$P$は、(5.10)を通して、求めるべき係数$w$の関数になっている。

5.1.2 最尤推定法によるパラメーターの決定

$$ w_{new} = w_{old} -(Φ^TRΦ)^{-1}Φ^T(z-t) \tag{5.14} $$

  • $t$はトレーニングセットの各データの属性値$t_n$を並べたベクトル
  • $\Phi$は各データの座標を表すベクトル$\Phi_n$を横ベクトルにして並べたNx3行列。
  • $z$は(5.10)の$z_n$を並べたベクトル。
  • $R$は$z_n(1-z_n)$を対角成分とする対角行列。

$$ t = \left( \begin{array}{c} t_1 \\ \vdots \\ t_n \end{array} \right) \tag{5.15} $$

$$ \Phi = \left( \begin{array}{c} 1 & x_1 & y_1 \\ 1 & x_2 & y_2 \\ \vdots & \vdots & \vdots \\ 1 & x_n & y_n \end{array} \right) \tag{5.16} $$

$$ z = \left( \begin{array}{c} z_1 \\ \vdots \\ z_n \end{array} \right) \tag{5.17} $$

$$ R = \left( \begin{array}{c} z_1(1-z_1) & \cdots & \cdots & 0 \\ \vdots & z_2(1-z_2) & \cdots & \cdots \\ \vdots & \vdots & \ddots & \cdots \\ \vdots & \vdots & \vdots & z_n(1-z_n) \end{array} \right) \tag{5.18} $$

  • ここで、$t$と$\Phi$はトレーニングセットのデータから決まる「定数」のベクトル/行列。
  • 一方$z$と$R$に含まれる$z_n$は(5.10)を通してパラメーター$w$に依存している。
  • つまり、パラメーター $ w_{old} $ が与えられた際に、これを用いて$z$と$R$を計算しておき、それを(5.14)に代入することで修正された新しいパラメーター $ w_{new} $ が得られる。
  • この $ w_{new} $ を次の $ w_{old} $として繰り返し計算していく。
  • 最終的に(5.13)の確立$P$が最大値に達する。
  • ※具体的な導出は「5.3 付録 - IRLS法の導出」を参照。
  • この方法は「IRLS (Iteratively Reweighted Least Squares)法、あるいは反復再重み付け最小二乗法」という。
  • 後述のニュートン法との類似性から、(5.14)の計算を繰り返し$P$の値が最大値に近づくに つれて、パラメーター$w$の変化の割合は小さくなる。
  • サンプルでは以下の条件で計算を打ち切る。

$$ \dfrac{{|| w_{new} - w_{old} ||}^2}{|| w_{old} ||} < 0.001 \tag{5.19} $$

  • この条件は、トレーニングセットに対してオーバーフィッティングを発生させないためのガード。

5.1.3 サンプルコードによる確認

「05-logistic_vs_perceptron.py」の実行結果は以下。 f:id:cimadai:20160523100500p:plain

  • 実線はロジスティック回帰の結果、破線がパーセプトロンの結果。
  • 4角トレーニングセットはランダムで、それぞれがどのように分類されるか。

  • パーセプトロンでは、「$n=1$〜$N$について、正しく分類されていなければパラメーター$w$を修正する」という処理を30回繰り返し、終了する。
  • ロジスティック回帰では、(5.14)でパラメーター$w$を修正した際に(5.19)の条件が成立した場合に計算を終了する。
  • (5.14)の修正を30回繰り返しても(5.19)が成り立たない場合はその時点で終了。
  • 図を見ると、ロジスティック回帰ではよりデータの中央で分割していることがわかる。
  • これはパーセプトロン確率的勾配降下法では、一度全てのデータが正しく分類されると、そこでパラメーターの変化が停滞するため。
  • ロジスティック回帰の場合は、トレーニングセットのデータが得られる全体的な確率を最大化しようとするため、よりもっともらしい分割線が選択される。