スキップしてメイン コンテンツに移動

ロジスティック回帰 理論編

Introduction


今日はロジスティック回帰について書こうと思います。ロジスティック回帰は機械学習の中でも基本とされています。ロジスティック回帰は二値を分類するためのアルゴリズム、モデルです。

概要

この記事はPRMLを参考に書かせていただいています。
最適化には反復再重みづけ最小二乗法を用いています。
  • シグモイド関数
  • 分類のための確率を定義
  • 交差エントロピー誤差関数
  • 反復再重みづけ最小二乗法

シグモイド関数

初めにシグモイド関数を定義します。
以下のような関数です。
\[\sigma(a) = \frac{1}{1+\exp(a)}\]
後に扱うので、シグモイド関数の微分を計算しておきます。きれいな形をしています。
\begin{eqnarray*} \frac{d}{d a} \frac{1}{1+\exp(a)} &=& \frac{\exp(-a)}{(1+\exp(-a))^2} \\ &=& \frac{1}{1+\exp(-a)} \frac{\exp(-a)}{1+\exp(-a)}\\ &=& \frac{1}{1+\exp(-a)} \{ \frac{1+\exp(-a)}{1+\exp(-a)} - \frac{1}{1+\exp(-a)} \} \\ &=& \sigma(a)(1-\sigma(a)) \end{eqnarray*}
シグモイド関数は機械学習において大事な役割を果たしています。
シグモイド関数は以下のような形をしています。
enter image description here
これを見てわかる通り、シグモイド関数は次のような性質を持っています。
  • シグモイド関数は 定義域は\((-\infty,\infty)\)で定義され、値域は\((0,1)\)で定義されています
  • シグモイド関数は単調増加関数です
  • シグモイド関数は(0,0.5)で点対称です
シグモイド関数の値を確率として考えることができるようになります。

分類のための確率の定義

初めにデータが正しく分類されたかの確率を考えてみる。
enter image description here
この直線は超平面だと思ってください。
超平面は以下のように表されます。
\[w^T x= 0\]
wは超平面に対する法線ベクトルになります。
  • \(w^T x > 0\)の時\(x\)は赤い領域にいる
  • \(w^T x < 0\)の時\(x\)は青い領域にいる
もし、データ点が赤い領域に属しているのならそのデータ点のクラスは\(C_1\).
また、データ点が青い領域に属しているのならそのデータ点のクラスは\(C_2\)
\(C_1\) は1を \(C_2\)は0をそれぞれラベルとして持っています。
私たちは、超平面から遠いデータ点ほど分類の結果に確信を持てます。
しかし、超平面に近いデータ点は必ずしもそうではないですよね。
超平面に近いデータ点に割り当てられたクラスはそんなに信用できない。
よって、シグモイド関数の性質を使う時が来た。超平面からデータポイントまでの距離を確率としてみましょう。
  • 確率が0.5を超えているとき\((C_1)\)のクラスに属しているとみなす。
  • 確率が0.5の時、どちらのクラスに属しているかはわからない。(データ点が超平面上にあることをさす。)
  • 確率が0.5を超えないとき、\((C_2)\) のクラスに属しているとみなす。
これをシグモイド関数を用いることで実現します。
シグモイド関数はこれらの性質をうまく実現してくれます。
よって、距離をシグモイド関数にいれた値を確率として扱います。

交差エントロピー誤差関数

データ集合が \(\{\phi_n,t_n\}\)で与えられているとき、 確率を次のように考えます。
\[\sigma(w^T \phi_n)\]
この確率に対する尤度関数を考えます。
\[p(t|w) = \Pi_{n=1}^{N} y_{n}^{t_n} \{1-y_n\}^{1-t_n}\]
ただし、
\[y_n = \sigma(w^T \phi_n) \]
\[t = (t_1,t_2,,,t_n)^T\]
y_n は\(\phi_n\) が\(C_1\) に属している確率です。
この尤度関数の負の対数をとると、対数の性質から次のようになります。
\[E(w) = -\log p(t|w) = - \sum_{n=1}^{N} \{t_n \log(y_n) + (1-t_n ) \log(1-y_n)\}\]
尤度関数の最大化は、この\(E(w)\)の最小化と同値になります。(対数は単調増加関数のため、最適解が変わらない)
\(E(w)\) は交差エントロピー誤差関数とゆわれています。

IRLS

IRLS は反復再重みづけ最小二乗のことです。最適化のためのこのアルゴリズムではニュートン法が用いられています。
E(w)を\(w\)について微分しましょう。
\begin{eqnarray*} \nabla E(w) &=& \nabla - \sum_{n=1}^{N} \{t_n \log(y_n) + (1-t_n ) \log(1-y_n)\}\\ &=& \nabla - \sum_{n=1}^{N} \{t_n \log(\sigma(w^T \phi_n) + (1-t_n ) \log(1-\sigma(w^T \phi_n)\}\\ &=&-\sum_{n=1}^{N} \{ \frac{t_n \sigma(w^T \phi_n)(1-\sigma(w^T \phi_n))}{\sigma(w^T \phi_n)}\phi_n - \frac{(1-t_n) \sigma(w^T \phi_n)(1-\sigma(w^T \phi_n))}{1-\sigma(w^T \phi_n)}\phi_n \}\\ &=& -\sum_{n=1}^{N} \frac{t_n (1-\sigma(w^T \phi_n))-(1-t_n)\sigma(w^T \phi_n)}{\sigma(w^T \phi_n) (1-\sigma(w^T \phi_n))} \{\sigma(w^T \phi_n) (1-\sigma(w^T \phi_n))\} \phi_n \\ &=& -\sum_{n=1}^{N} \{t_n (1-\sigma(w^T \phi_n))-(1-t_n)\sigma(w^T \phi_n)\} \phi_n \\ &=& -\sum_{n=1}^{N} \{t_n - t_n \sigma(w^T \phi_n) - \sigma(w^T \phi_n) - \sigma(w^T \phi_n) + t_n \sigma(w^T \phi)\} \phi_n\\ &=&\sum_{n=1}^{N} \{\sigma(w^T \phi_n) - t_n \} \phi_n\\ &=& \sum_{n=1}^{N} (y_n - t_n) \phi_n\\ &=& \phi^T (y - t)\\ \end{eqnarray*}
次に、E(w)のヘッセ行列を求めましょう。
\begin{eqnarray*} H &=& \nabla \nabla E(w) \\ &=& \nabla \phi^T(y-t) \\ &=& \nabla \sum_{n=1}^{N} \phi_{n}^T (y_n-t_n) \\ &=& \nabla\sum_{n=1}^{N} (y_n-t_n) \phi_{n}^T \\ &=&\sum_{n=1}^{N} y_n(1-y_n) \phi_n \phi^T = \phi^T R \phi \end{eqnarray*}
ここでRは対角成分に\(y_n(1-y_n)\) を持つ対角行列です。
これらの式を使うとwの更新は次のようになります。
\begin{eqnarray*} w_{new} &=& w_{old} - \{ \phi^ T R \phi \}^ {-1} \phi^T (y-t) \\ &=& \{ \phi^ T R \phi \}^ T \{ \phi^ T R \phi w_{old} - \phi^T(y-t)\} \\ &=& \{ \phi^ T R \phi \} ^ {-1} \phi^ T Rz \end{eqnarray*}
ただし、
$$z=\phi w_{old} - R^{-1}(y-t)$$

この記事ではロジスティック回帰の理論的な部分を扱いました。
次はロジスティック回帰の実装の記事を書こうと思います。
次の記事も見ていただけると嬉しいです。

*実装の記事も書きました。
Implementation of Logistic Regression


コメント

このブログの人気の投稿

ヘッセ行列

Introduction English ver 今日は、ヘッセ行列を用いたテイラー展開について書こうと思います。 これは最適化を勉強するにあたって、とても大事になってくるので自分でまとめて残しておくことにしました。とくに、機械学習では最適化を必ず行うため、このブログのタイトルにもマッチした内容だと思います。 . 概要 ヘッセ行列の定義 ベクトルを用いたテイラー展開 関数の最適性 ヘッセ行列の定義 仮定 f は次のような条件を満たす関数です。. f はn次元ベクトルから実数値を出力します。 このベクトルは次のように表せます。 \[x = [x_1,x_2,,,,x_n]\] \(\forall x_i , i \in {1,2,,,n}\), f は二回偏微分可能です。 定義 ヘッセ行列は \(\frac{\partial^2}{\partial x_i \partial x_j}を (i,j)要素に持ちます。\) よってヘッセ行列は次のように表せます。 \[ H(f) = \left( \begin{array}{cccc} \frac{\partial^ 2}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & &\ldots \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^ 2 f}{\partial x_1 \partial x_2} & \frac{\partial^ 2 f}{\partial x_2^ 2} & \ldots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^ 2 f}{\partial x_n \partial x_2} & \frac{\partial^ 2 f}{\partial x_n \partial x_2} & \ldo...

Plane in two dimention

Introduction 日本語 ver Today, I prove this theorem. Plane in two dimention is expressed following. \[\{x|<x,v> = 0\}\] however, v is orthogonal vector for plane and not zero vector. Proof \[\forall k \in \{x|<x,v> = 0\},\] k is fulfill this form. \[<k,v> = 0\] Now, because k and v in two dimentinal space, each vector express following. \[k = (k_1,k_2)\] \[v = (v_1,v_2)\] Thus, \(<k,v>=k_1v_1 + k_2v_2=0\) Change this equation. \[k_2 = -\frac{v_1}{v_2} k_1\] This equation is plane that slope is \(-\frac{v_1}{v_2}\). Q.E.D

Discrete Fourier transform

Introduction 日本語 ver I will write about Discrete Fourier transform. Discrete Fourier transform is Abbreviated DFT. I am making pdf about Audio Signal Processing. I publish pdf at  github . However, I write tex in Japanese. I take a lecture about the signal processing. There is lecture at  thie page . I update this pdf.