[mathjax]
はじめに
前回までの記事では、データマイニングや機械学習において最もシンプルな手法である線形回帰の数理的な側面について見てきました。
今回は、2値分類を通じて、ラベル予測やリスクファクターの評価など様々な場面で使うことができる、ロジスティック回帰 logistic regressionについて見ていきます。
線形回帰からロジスティック回帰へ
線形回帰では、次のように目的変数のモデリングを行いました(データの各サンプルを示す上付きの添字は省略します)。
$$
large
begin{align}
y &= h_theta(x ) + epsilon \
&= theta_0 x_0+ theta_1 x_1 + theta_2 x_2 + cdots + theta_n x_n + epsilon\
&= theta^mathrm{T} x + epsilon (epsilon sim mathbb{N}(0, sigma^2))
end{align}
$$
では、目的変数(y)が連続値ではなく、「クラス class」である場合を考えてみます。
今回は2値分類 binary classification、すなわち0(negative class)か1(positive class)の分類((y in {0, 1}))を考えます。例えば、疾病の陽性検査やメールのスパムチェックなどが2値分類に相当します。
ロジスティック回帰を直感的に理解するためには、ロジスティック回帰が2値分類の確率に対する回帰であることをイメージすることが有効でしょう。確率は0~1の範囲で値を取りますが、素朴に線形回帰を適用しようとすると、(h_theta(x) = theta^mathrm{T}x)の値がこれらの範囲に収まりません。そこで次のようなシグモイド関数 (g(z)=1/(1+e^{-z}))を導入し、0-1の範囲に収めることで確率としての解釈を行うことを考えます。
すなわち、モデリングは次のようになります。
$$
large
begin{align}
g(z) &= frac{1}{1+e^{-z}} \ \
h_theta(x) &= g(theta^mathrm{T}x) \
&= frac{1}{1+e^{-theta^mathrm{T}x}}
end{align}
$$
さて、モデルパラメタである(theta)を最尤推定するには、尤度関数の定義が必要です。目的変数(y)がそれぞれ0, 1をとる確率を次のように仮定します。
$$
large
begin{align}
mathrm{Pr}(y=1|x; theta) &= h_theta(x) \ \
mathrm{Pr}(y=0|x; theta) &= 1- h_theta(x)
end{align}
$$
すると、個別のサンプルがとるクラスを確率変数とする確率分布は次のように表現できます。なお、次のような形をしている確率分布をベルヌーイ分布と呼びます。
$$
large
p(y | x;theta) = (h_theta(x))^y (1-h_theta(x))^{1-y}
$$
よって、尤度関数は次のように導出されます。
$$
large
begin{align}
p(D|theta) &= p({x^{(i)}, y^{(i)}}_{i=1}^N|theta) (y in {0, 1}) \[1.0em]
&= prod_{i=1}^N p(y^{(i)}|x^{(i)}; theta) \
&= prod_{i=1}^N (h_theta(x^{(i)}))^{y^{(i)}} (1-h_theta(x^{(i)}))^{1-y^{(i)}}
end{align}
$$
計算の都合から、対数尤度関数に置き換えると次のようになります。
$$
large
begin{align}
l(theta) &= log L(theta) \
&= sum_{i=1}^N y^{(i)}log h_theta(x^{(i)}) + (1-y^{(i)})log(1-h_theta(x^{(i)}))
end{align}
$$
最大化したい目的関数(=対数尤度関数)が分かれば、あとは数理最適化のアルゴリズムにより目的関数を最大化する(theta)を決定することができます。詳細は割愛しますが、ロジスティック回帰においては、ニュートン法が主に用いられます。
補足
ニュートン法は、関数の微分を利用して、関数のx切片((f(x)=0)になる(x))の近似値を求める手法です。目的関数が凸関数(convex)である場合、目的関数の局所最適解は必ず大局最適解であるという性質を持ちます(上に凸であれば、最大値が一意に決定する)。ロジスティック回帰における対数尤度関数が(theta)について凸関数であることは、対数尤度関数のヘッセ行列(二階偏微分からなる行列)が半正定値性 positive semi-definiteを持つことから証明できます。また、シグモイド関数(g(z))は(g'(z) = g(z)(1-g(z)))であるという便利な性質を持ちます。
ロジスティック回帰の性質
さて、ロジスティック回帰が実際にどのように分類を行なっているかのイメージを掴むため、次のデータを使用して可視化を行います。
このデータには、乳がんの腫瘍の画像からradiusやtexture等の30個の特徴量を生成し、569個のサンプルが格納されています。クラスは「悪性腫瘍 malignant(1, positive)」と「良性腫瘍 benign(0, negative)」の二種類です。本来は30個の特徴量から変数選択などを駆使して分類を行いますが、可視化の都合上、radiusとcompactnessという2つの特徴量のみを用いてロジスティック回帰を適用したところ、次のようになりました。
各サンプルは、radiusとcompactnessからなる2次元の特徴空間 feature spaceにプロットされます。赤い直線は、決定境界 decision boundaryと呼ばれるもので、特徴空間において分類の境界となる超平面 hyperplane(2次元なら直線、3次元なら平面)を示すものです。
ロジスティック回帰における決定境界は、(theta^mathrm{T}x=0)であり、線形です。よって、大まかに線形分離が可能なデータではない場合、分類のパフォーマンスは低くなります。
ただし、データが「完全に線形分類可能」である場合(すなわち、線形分離においても分類精度を100%にできる場合)、最適化アルゴリズムが収束しないという問題があります。このようなデータにおいては(theta)を等倍していくことで対数尤度関数を大きくできてしまうという性質があるためです。この問題については、L2正則化により(theta)のスケールに対してペナルティを化すことで対処することができます。
まとめ
2値分類の確率に対する線形型の回帰として、ロジスティック回帰を紹介しました。今回の記事では、シグモイド関数の導入やシグモイド関数の値を確率として解釈するなど、いくつか自明でない仮定が存在しました。次回の記事では、これらの仮定を見直すために、線形回帰やロジスティック回帰など多様な回帰手法を統一的に扱う手法である一般化線形モデル(generalized linear model, GLM)について見ていきます。