Prml4
線形識別モデル
入力ベクトル\(x\)を\(K\)個のクラスに分類することを分類問題という。 この時、入力空間は、決定領域といわれるクラスごとの領域に分割される。 決定領域の境界を決定境界という。 ここでは、D次元の入力空間をD-1次元の決定平面で分割する線形識別モデルについて考える。 またこの時 正しく分割できる驟雨号を線形決定可能な集合という。 回帰モデルの時違い、クラスは離散的な値になるので、出力は、非線形関数fを使って \[y(x)=f(w^{\mathrm{T}}x+w_{0})\] で表し、一般線形モデルといわれる。この時のfを活性化関数という。
識別関数
最も簡単な線形識別関数は、 \[y(x)=w^{\mathrm{T}}x+w_{0}\] で表され、\(w\)を重みベクトル、\(w_{0}\)をバイアスパラメータという。またバイアスパラメータのマイナスは、しきい値パラメータと呼ばれる。 このとき、決定面は、\(y(x)=0\)であたえられる。この時、wは決定面に直行し、y(x)は、xからの直行距離を表す。 他クラスに分類する場合、クラスに属すかいないかを決める関数を複数個組み合わせる1対他分類器や、 あるクラスか、また別のクラスに分類する関数を複数用いて、多数決によって分類する1対1分類器などがあるが、曖昧さがうまれてしまう。 そこで、K個の線形分類器からなるKクラス識別を考えると \[y_{k}(x)=w_{k}^{\mathrm{T}}x+w_{k0}\] で表される。 この時、最も大きい値のクラスに入力は分類される。この時の決定面は、 \[(w_{k}-w_{j})^{\mathrm{T}}x+(w_{k0}-w_{j0})=0\] となる。またこの決定面は、一つに連結している。 パラメータの決め方には、最小二乗、フィッシャーの線形判別、パーセプトロンアルゴリズムなどがある。
最小二乗
ここでは、目的変数tに1-fo-K符号化法を使う。 各線形識別器をひとまとめにすると \[\mathbf{y}(x)=\mathbf{W}^{\mathrm{T}}\mathbf{x}\] となる。\(\mathbf{W}\)は、要素が\((w_{k0},\mathbf{w}_{k}^{\mathrm{T}})\)で表され、 \(\mathbf{x}\)の要素は、\((1,\mathbf{x}^{\mathrm{T}})^{\mathrm{T}}\)で表される。 この時の二乗誤差は、 \[E_{D}(\mathbf{W})=\frac{1}{2}\mathrm{Tr}\{(\mathbf{XW}-\mathbf{T})^{\mathrm{T}}(\mathbf{XW}-\mathbf{T})\}\] となる。また、\(\mathbf{X}\)の要素は、\(\mathbf{x}_{n}^{\mathrm{T}}\)、\(\mathbf{T}\)の要素は、\(t_{n}^{\mathrm{T}}\)となる。 二乗誤差の導関数を0として解くと、 \[\mathbf{W}=(\mathbf{X}^{\mathrm{T}}\mathbf{X})\mathbf{X}^{\mathrm{T}}\mathbf{T}\] となる。 よって識別関数は、 \[y(x)=\mathbf{T}^{\mathrm{T}}\mathbf{X}^{\dag\mathrm{T}}\mathbf{x}\] \[\mathbf{X}^{\dag}=(\mathbf{X}^{\mathrm{T}}\mathbf{X})\mathbf{X}^{\mathrm{T}}\] となる。 最小二乗では、出力の和が1になってはいるが、正規化できていなかったり、ノイズに弱かったり、尤度関数に正規分布を仮定しているので、問題がある。
フィッシャーの線形判別
高次元の入力の次元を削減し、低次元で分類する方法。 まず、2クラスの分類器について考える。 入力を1次元に射影すると、 \[y=w^{\mathrm{T}}x\] で表せる。 各クラスの平均ベクトルは、 \[m_{k}=\frac{1}{N_{k}}\sum_{n\in C_{k}}x_{n}\] となる。 クラス\(C_{k}\)から射影されたデータのクラス内分散は、 \[s_{k}^{2}=\sum_{n\in C_{k}}(y_{n}-m_{k})^{2}\] となる。 フィッシャーの判断規準は、 \[J(w)=\frac{(m_{2}-m_{1})^{2}}{s_{1}^{2}+s_{2}^{2}}\] \[J(w)=\frac{w^{\mathrm{T}}S_{B}w}{w^{\mathrm{T}}S_{W}w}\] \[S_{B}=(m_{2}-m_{1})(m_{2}-m_{1})^{\mathrm{T}}\] \[S_{W}=\sum{n\in C_{1}}(x_{n}-m_{1})(x_{n}-m_{1})^{\mathrm{T}}+\sum{n\in C_{2}}(x_{n}-m_{2})(x_{n}-m_{2})^{\mathrm{T}}\] であらわされる。また、\(S_{B}\)をクラス間共分散、\(S_{W}\)を総クラス内共分散という。 導関数を0とおき、解くと \[(w^{\mathrm{T}}S_{B}w)S_{W}w=(w^{\mathrm{T}}S_{W}w)S_{B}w\] を満たすJ(w)が最大となるのがわかる。また、\(S_{B}\)は、\(m_{2}-m_{1}\)と同じ向きのベクトルで、()の中はスカラなので、 \[w\propto S_{w}^{-1}(m_{2}-m_{1})\] となる。これは、フィッシャーの線形判別といわれる。 これにより射影された空間では、\(y(x)\geq y_{0}\)が\(C_{1}\)に分類され、それ以外が\(C_{2}\)に分類される。 多クラスの場合について考える。 分類クラスより、入力次元が大きいとする。 入力データを、k個の特徴に変換すると、 \[y=W^{\mathrm{T}}x\] となる。Wは、\(w_{k}\)を列の要素としている。 クラス内分散を考えると、 \[S_{W}=\sum_{k=1}^{K}S_{k}\] \[S_{k}=\sum_{n\in C_{k}}(x_{n}-m_{k})(x_{n}-m_{k})^{\mathrm{T}}\] \[m_{k}=\frac{1}{N}\sum_{n\in C_{k}}x_{n}\] となる。 次に、総分散行列を考えると、 \[S_{T}=\sum_{n=1}^{N}(x_{n}-m)(x_{n}-m)^{\mathrm{T}}\] \[m=\frac{1}{N}\sum_{k=1}^{K}N_{k}m_{k}\] となる。 また、総分散行列は、総クラス間分散とクラス内分散に分解できるので、 \[S_{T}=S_{W}+S_{B}\] \[S_{B}=\sum_{k=1}^{K}N_{k}(m_{k}-m)(m_{k}-m)^{\mathrm{T}}\] と洗わせる。これは、x空間でのものだが、射影した空間でも成り立つ。 ここで、クラス内共分散が小さくクラス間共分散が大きい時に大きくなるスカラを考える。 例の一つは、 \[J(W)=\mathrm{Tr}S_{W}^{-1}S_{B}\] \[J(W)=\mathrm{Tr}\{(W^{\mathrm{T}}S_{W}W)^{-1}(W^{\mathrm{T}}S_{B}W)\}\] で表される。また、この方法では、K個以上の特徴が発見できないことが知られている。
パーセプトロンアルゴリズム
以下のような線形識別モデルを考える。 \[y(x)=f(w^\mathrm{T}\phi(x))\] この時の活性化関数は、入力が0以上ならば1、以下なら-1を出力するステップ関数を使う。 目的変数は、\(C_{1}\)なら1、\(C_{2}\)なら-1という風に1と-1で表す。 ここで、パラメータを関数を特徴にかけた時、\(C_{1}\geq 0\)、\(C_{2}<0\)となるようなパラメータを考える。 この時、誤差関数を考えると、 \[E_{P}(w)-\sum_{n\in M}w^{\mathrm{T}\phi(x_{n})t_{n}}\] となり、これを最小にすることを考える。Mは誤認識された集合を表す。 この式は、wに関して線形なので、確率的勾配降下法を使って最小化できる。 更新式は、 \[w^{\tau}=w^{\tau-1}-\eta E_{P}\] となる。誤差データのみを見ているので、更新によって新たに誤認識される場合もあるがこれは収束することがわかっている。
確率的生成モデル
ベイズの定理を使って、条件付き確率\(p(x|C_{i})\)と事前分布\(p(C_{i})\)から事後分布\(p(C_{i}|x)\)を計算する。 事後確率の形について考える。 2クラスの場合、 \[p(C_{1}|x)=\frac{p(x|C_{1})p(C_{1})}{p(x|C_{1})p(C_{1})+p(x|C_{2})p(C_{2})}=\sigma(a)\] \[a=\ln\frac{p(x|C_{1})p(C_{1})}{p(x|C_{2})p(C_{2})}\] となる。\(\sigma(a)\)はロジスティクスシグモイド関数である。 多クラスの場合、 \[p(C_{k}|x)=\frac{p(x|C_{k})p(C_{k})}{\sum_{j}p(x|C_{j})p(C_{j})}\] \[p(C_{k}|x)=\frac{\exp(a_{k})}{\sum_{j}\exp(a_{j})}\] \[a_{k}=\ln(p(x|C_{k})p(C_{k}))\] となる。この時の事後確率の関数は、ソフトマックス関数といわれる。 入力が連続値である時を考える。 すべてのクラスが同じ共分散行列を共有すると仮定し、条件付き分布は、正規分布だと仮定すると、 \[p(x|C_{k})=\frac{1}{(2\pi)^{\frac{D}{2}}}\frac{1}{|\Sigma|^{\frac{1}{2}}}\exp\{-\frac{1}{2}(x-\mu_{k})^{\mathrm{T}}\Sigma^{-1}(x-\mu_{k})\}\] となる。よって2クラスの時の、\(C_{1}\)の事後確率は、 \[p(C_{1}|x)=\sigma(w^{\mathrm{T}}x+w_{0})\] \[w=\Sigma^{-1}(\mu_{1}-\mu_{2})\] \[w_{0}=-\frac{1}{2}\mu_{1}^{\mathrm{T}}\Sigma^{-1}\mu_{1}+\frac{1}{2}\mu_{2}^{\mathrm{T}}\Sigma^{-1}\mu_{2}+\ln\frac{p(C_{1})}{p(C_{2})}\] となる。 多クラスの時は、 \[a_{k}=w_{k}^{\mathrm{T}}x+w_{k0}\] \[w_{k}=\Sigma^{-1}\mu_{k}\] \[w_{k0}=-\frac{1}{2}\mu_{k}^{\mathrm{T}}\Sigma^{-1}\mu_{k}+\ln p(C_{k})\] となる。 尤度関数について考える。 2クラスの時について考える。条件付き分布が正規分布であると仮定し、\(C_{1}\)の事前分布が\(\pi\)であるとすると、尤度関数は、 \[p(\mathbf{t},\mathbf{X}|\pi,\mu_{1},\mu_{2},\Sigma)=\prod_{n=1}^{N}[\pi N(x_{n}|\mu_{1},\Sigma)]^{t_{n}}[(1-\pi) N(x_{n}|\mu_{2},\Sigma)]^{1-t_{n}}\] となる。まず\(\pi\)を求める。 \(\pi\)について対数尤度を、微分し0とおくと、 \[\pi=\frac{1}{N}\sum_{n=1}^{N}t_{n}=\frac{N_{1}}{N}\] となる。 次に、\(\mu_{1}\)について考える。 さっきと同じ用に、\(\mu_{1}\)について対数尤度を、微分し0とおくと、 \[\mu_{1}=\frac{1}{N_{1}}\sum_{n=1}^{N}t_{n}x_{n}\] となる。同様に、\(\mu_{2}\)についても、 \[\mu_{2}=\frac{1}{N_{2}}\sum_{n=1}^{N}t_{n}x_{n}\] となる。 最後に\(\Sigma\)について考える。 対数尤度をとり、正規分布の標準的な最尤推定解をみると、 \[\Sigma=\frac{N_{1}}{N}S_{1}+\frac{N_{2}}{N}S_{2}\] \[S_{1}=\frac{1}{N_{1}}\sum_{n\in C_{1}}(x_{n}-\mu_{1})(x_{n}-\mu_{1})^{\mathrm{T}}\] \[S_{2}=\frac{1}{N_{2}}\sum_{n\in C_{2}}(x_{n}-\mu_{2})(x_{n}-\mu_{2})^{\mathrm{T}}\] となる。 離散的な入力の場合について考える。 この時、条件付き確率が、ベルヌーイ分布の尤度関数と一致するので、それに置き換えて同じように計算する。 また、正規分布を仮定してやってきたが、一般的に、指数型分布族を仮定するなら同じ方法でできる。
確率的識別モデル
事後事後分布\(p(C_{k}|x)\)のパラメータを反復再重み付け最小二乗(IRLS)を使い最尤推定し、直接求める。 ここでは、入力を基底関数\(\phi(x)\)を用いて非線形変換する。 2クラス分類について考える。 事後確率は、ロジスティクスシグモイド関数で表されたので、 \[p(C_{k}|x)=\sigma(w^{\mathrm{T}}\phi(x))=y(\phi)\] となる。このモデルをロジスティクス回帰という。 尤度関数について考える。 教師データを\(\{\phi_{n},t_{n}\}\)とすると、尤度関数は、 \[p(\mathbf{t}|w)=\prod_{n=1}^{N}y_{n}^{t_{n}}\{1-y_{n}}^{1-t_{n}\}\] となる。負の対数尤度を取ると、 \[E(W)=-\sum_{n=1}^{N}\{t_{n}\ln y_{n}+(1-t_{n})\ln(1-y_{n})\}\] となる。これは交差エントロピー誤差関数と言われる。 パラメータの更新には、ニュートン-ラフソン法を使う。 このアルゴリズムでは、パラメータは、 \[w^{new}=w^{old}-H^{-1}\nabla E(w)\] \[\nabla E(w)=\Phi^{\mathrm{T}}(\mathbf{y}-\mathbf{t})\] \[H=\nabla\nabla E(w)=\Phi^{\mathrm{T}}\mathbf{R}\Phi\] \[R_{nn}=y_{n}(1-y_{n})\] で更新される。 式を整理すると、 \[w^{new}=(\Phi^{\mathrm{T}}\mathrm{R}\Phi)^{-1}\Phi^{\mathrm{T}}\mathbf{R}z\] \[z=\Phi w^{old}-\mathbf{R}^{-1}(\mathbf{y}-\mathbf{t})\] となる。\(\mathbf{R}\)がパラメータを含んでいるので、\(\mathbf{R}\)を先に決め、パラメータを更新するのを繰り返す。 多クラスについて考える。 事後確率は、ソフトマックス関数によって与えられたので、 \[p(C_{k}|x)=\frac{\exp(a_{k})}{\sum_{j}\exp(a_{j})}=y(\phi)\] \[a_{k}=w_{k}^{\mathrm{T}}\phi\] となる。 尤度関数は、 \[p(\mathbf{T}|w_{1},…,w_{k})=\prod_{n=1}^{N}\prod_{k=1}^{K}y_{nk}^{t_{nk}}\] となる。負の対数尤度を取ると \[E(w_{1},…,w_{k})=-\sum_{n=1}^{N}\sum_{k=1}^{K}t_{nk}\ln y_{nk}\] となり、交差エントロピー誤差関数となる。よってさっきと同じように、IRLSで最尤推定解がもとめられる。 これまで、事後確率をシグモイド関数で見てきたがすべての指数型分布族がシグモイド関数になるわけではない。 線形識別モデル \[p(t=1|a)=f(a)\] \[a=w^{\mathrm{T}}\phi\] を考える。活性化関数には、しきい値以上ならば1、より小さいなら0を出力するものを考え、しきい値が\(p(\theta)\)から発生するとすると、 \[f(a)=\int_{-\infty}^{a}p(\theta)d\theta\] となる。ここで、しきい値が平均0分散1の正規分布であると仮定すると、 \[\Phi(a)=\int_{-\infty}^{a}N(\theta|0,1)d\theta\] となる。これは、プロビット関数の逆関数となる。また、一般的な正規分布でもパラメータが変わるだけなので、同じ形になる。 ここで、 \[erf(a)=\frac{2}{\sqrt{\pi}}\int_{0}^{a}\exp(-\theta^{2})d\theta\] で表されるerf関数を使うとプロビット関数の逆関数は、 \[\Phi(a)=\frac{1}{2}\{1+erf(\frac{a}{\sqrt{2}})\}\] となる。このように、プロビット関数での線形識別モデルをプロビット回帰という。パラメータは、ロジスティクス回帰と同じように求められる。
ベイズロジスティクス回帰
ロジスティクス関数をラプラス近似し、正規分布で表現することで、ロジスティクス回帰をベイズ的に扱うことを考える。
ラプラス近似
ある分布を正規分布で近似する方法。 まずは、連続な1変数zで考える。 近似したい分布を \[p(x)=\frac{1}{z}f(z)\] \[Z=\int f(z)dz\] とする。ここでは、p(x)のモードを中心とした正規分布を考える。まずp(z)のモードを求める。モードは、 \[\frac{df(z)}{dz}|_{z=z_{0}}=0\] を満たす\(z_{0}\)である。ここで、\(\ln f(z)\)の\(z_{0}\)におけるテイラー展開を考えると、 \[\ln f(z)\simeq\ln f(z_{0})-\frac{1}{2}A(z-z_{0})^{2}\] \[A=-\frac{d^{2}}{dz^{2}}\ln f(z)|_{z=z_{0}}\] となる。テイラー展開の指数を取ると、 \[f(z)\simeq f(z_{0})-\exp\{-\frac{A}{2}(z-z_{0})^{2}\}\] となる。これをガウス分布で近似すると、 \[q(z)=(\frac{A}{2\pi})^{\frac{1}{2}}\exp\{-\frac{A}{2}(z-z_{0})^{2}\}\] となる。 今度は、M次元ベクトル\(\mathbf{z}\)について考える。モードは、同じようにもとめられる。モードにおけるテイラー展開を考えると、 \[\ln f(z)\simeq\ln f(z_{0})-\frac{1}{2}(\mathbf{z}-\mathbf{z}_{0})^{\mathrm{T}}A(\mathbf{z}-\mathbf{z}_{0})\] \[A=-\nabla\nabla\ln f(\mathbf{z})|_{\mathbf{z}=\mathbf{z}_{0}}\] となる。両辺の指数を取り、正規分布で近似すると、 \[q(z)=N(\mathbf{z}|\mathbf{z}_{0},A^{-1})\] となる。
予測分布
ロジスティクス回帰の予測分布を考える。まず事後分布を考える。事後分布は正規分布に近似されているので、事前分布にも正規分布を使う。事前分布は、 \[p(w)=N(w|m_{0},S_{0})\] となる。\(m_{0}、S_{0}\)はハイパーパラメータ。 ロジスティクス回帰の尤度関数を使って事後分布を表すと、 \[\ln p(w|\mathbf{t})=-\frac{1}{2}(w-m_{0})^{\mathrm{T}}S_{0}^{-1}(w-m_{0})+\sum_{n=1}^{N}\{t_{n}\ln y_{n}+(1-t_{n}) \ln(1-y_{n})+定数\}\] となる。これをラプラス近似する。 モードは、MAP推定の解と一致する。ヘッセ行列は、 \[S_{N}^{-1}=S_{0}^{-1}+\sum_{n=1}^{N}y_{n}(1-y_{n})\phi_{n}\phi_{n}^{\mathrm{T}}\] となる。よってラプラス近似は、 \[q(w)=N(w|w_{MAP},S_{N})\] となる。予測分布について考える。 予測分布は、 \[p(C_{1}|\phi,\mathbf{t})=\int p(C_{1}|\phi,w)p(w|\mathbf{t})dw\simeq\int \sigma(w^{\mathrm{T}\phi})q(w)dw\] となる。ここで、\(a=w^{\mathrm{T}}\phi\)とすると、 \[\sigma(w^{\mathrm{T}}\phi)=\int\delta(a-w^{\mathrm{T}}\phi)\sigma(a)da\] となる。これより、 \[\int \sigma(w^{\mathrm{T}\phi})q(w)dw=\int \sigma(a)p(a)da\] \[p(a)=\int\delta(a-w^{\mathrm{T}}\phi)q(w)dw\] となる。このとき、q(w)が正規分布なので、p(a)も正規分布となる。 この時のp(a)の平均と分散は、 \[\mu_{a}=w_{MAP}^{mathrm{T}}\phi\] \[\sigma^{2}_{a}=\phi^{\mathrm{T}}S_{N}\phi\] となる。よって予測分布は、 \[p(C_{1}|\mathbf{t})=\int\sigma(a)N(a|\mu_{a},\sigma^{2}_{a})da\] となる。ここで、プロビット関数の逆関数で、シグモイド関数を近似すると、 \[\sigma(a)\simeq\Phi(\lambda a)\] となる。プロビット関数の逆関数と正規分布の畳み込みは、 \[\int \Phi(\lambda a)N(a|\mu,\sigma^{2})da=\Phi(\frac{\mu}{(\lambda^{-2}+\sigma^{2})^{\frac{1}{2}}})\] となる。よって、予測分布は、 \[p(C_{1}|\phi,\mathbf{t})\simeq\sigma{k(\sigma^{2}_{a}\mu_{a})}\] \[k(\sigma^{2})(1+\frac{\pi\sigma^{2}}{8})^{-\frac{1}{2}}\] となる。