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 最尤推定法によるパラメーターの決定
- (5.13)の確率$P$を最大にするパラメーター$w$を求める。
- しかし複雑なため式変形では解けない。
- パーセプトロンと同様に確立$P$が大きくなる方向に$w$を修正していく。
- パーセプトロンの「確率的勾配降下法」は、単純に勾配ベクトルの反対方向にパラメーターを修正するというもの。
- 「ニュートン・ラフソン法」を適用することで、次のアルゴリズムが得られる。
$$ 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」の実行結果は以下。
- 実線はロジスティック回帰の結果、破線がパーセプトロンの結果。
- 4角トレーニングセットはランダムで、それぞれがどのように分類されるか。
- パーセプトロンでは、「$n=1$〜$N$について、正しく分類されていなければパラメーター$w$を修正する」という処理を30回繰り返し、終了する。
- ロジスティック回帰では、(5.14)でパラメーター$w$を修正した際に(5.19)の条件が成立した場合に計算を終了する。
- (5.14)の修正を30回繰り返しても(5.19)が成り立たない場合はその時点で終了。
- 図を見ると、ロジスティック回帰ではよりデータの中央で分割していることがわかる。
- これはパーセプトロンの確率的勾配降下法では、一度全てのデータが正しく分類されると、そこでパラメーターの変化が停滞するため。
- ロジスティック回帰の場合は、トレーニングセットのデータが得られる全体的な確率を最大化しようとするため、よりもっともらしい分割線が選択される。