【回帰分析の数理】#5 ロジスティック回帰の導出

はじめに

前回までの記事では、データマイニングや機械学習において最もシンプルな手法である線形回帰の数理的な側面について見てきました。

【回帰分析の数理】#4 過学習を防ぐL2正則化とベイズ的解釈(MAP推定)
はじめに データマイニング・機械学習における最もシンプルな手法である線形回帰を例に、今回の記事では過学習を防ぐテクニックの一つであるL2正則化と、L2正則化のベイズ的解釈について見ていきます。前回の記事では、説明変数の多い柔軟なモデル...

今回は、2値分類を通じて、ラベル予測やリスクファクターの評価など様々な場面で使うことができる、ロジスティック回帰 logistic regressionについて見ていきます。

線形回帰からロジスティック回帰へ

【回帰分析の数理】#1 線形回帰で学ぶ最尤推定
はじめに データマイニング・機械学習における最もシンプルな分析手法である線形回帰について説明します。この記事では線形回帰を例に、データマイニングの基礎概念である尤度関数について学びます。データマイニングとは、データから意思決定を高度化...

線形回帰では、次のように目的変数のモデリングを行いました(データの各サンプルを示す上付きの添字は省略します)。

$$
\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))\)であるという便利な性質を持ちます。

ロジスティック回帰の性質

さて、ロジスティック回帰が実際にどのように分類を行なっているかのイメージを掴むため、次のデータを使用して可視化を行います。

Page not found · GitHub Pages

このデータには、乳がんの腫瘍の画像から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)について見ていきます。

【回帰分析の数理】#6 一般化線形モデル(GLM)とは
はじめに 前回の記事では、線形回帰に続き、ロジスティック回帰を見ていきました。 目的変数である\(y\)は、線形回帰においては任意の実数値、ロジスティック回帰においては2値をとりました。では、目的変数\(y\)が、例えば...

参考文献

[1] Stanford CS229 Machine Learning Lecture Notes 1

SD/T
Written by
SD/T