サポートベクトルマシン Python機械学習プログラミング第三章

サポートベクトルマシンは機械学習プログラミングをやればよく聞くものだ。しかし、、この本では、実装はしっかりやってくれているが、理論は感覚的なものでしっかりしていな気がする。しかし、調べてたら一冊の本になるくらいの内容である。(下に紹介されていた参考図書を載せた)下の本がよさそうであるが、この本では、データ分析がとにかくできるようになると考えると、今回は我慢して、PRMLなどを読むときを楽しみに頑張る!!

サポートベクトルマシン(SVM

線形

 今回はパーセプトロンの拡張である、サポートベクトルマシンである。サポートベクトルマシンでは、誤差を最小にするように直線を引いたが、SVMでは二次元で考えた時直線(決定境界)とデータとの差(マージン)を最大にするようにする。

もっとも近いサンプルとの時の線をサンプル (\vec{x_{pos}}, {x_{neg}} ) = ( -1, 1)でクラスラベルがあるときに。

 w_0 + \vec{w}^T\vec{x_{pos}} = 1

 w_0 + \vec{w}^T\vec{x_{neg}} = -1

となる。

この二つの直線の距離を最大化する直線を学習する。

直線で考えると分かりやすいが、というか進め方が進めがするのだが、この二つの直線を引くとこの二つの距離の倍数になる。これは、切片の差で、 \vec{w}は等しいので、傾きが等しいため、この距離を最大化するのとこの切片の差を最大化するのと等しい。この二つのベクトルの差は、重みのベクトルの大きさで割ると求められるので、

 \frac{\vec{w}^T\vec{x_{pos}} - \vec{w}^T\vec{x_{neg}} }{||\vec{w}||^2} = \frac{2}{||\vec{w}||^2}

となり右辺の最大化に帰着する。そして、この逆数の最小化になる。

この最小化は、この本の範囲外らしい2分計画法によって求められるらしい。

スラック変数

スラック変数 \xiという変数を用いて少しご分類を含ませることで、

 w_0 + \vec{w}^T\vec{x_{pos}} \geqq 1 - \xi

 w_0 + \vec{w}^T\vec{x_{neg}} \leqq  -1 - \xi

そうすると、最小化するべき対象はいかになる。

 \frac{1}{2}||\vec{w}||^2 + C\left(\Sigma\xi^i\right)

Cはバリアンスとバイアスの調整

カーネルSVM

ある次元では、線形不分離であっても次元を増やせば、できることもある。この例では、2次元で直線で不分離であっても、3次元で平面を用いて、行えばいいとしている。

 \phi(x_1, x_2) = (z_1, z_2, z_3) =x_1, x_2, {x_2}^2 + {x_2}^2 )

とする。しかしこの方法では、計算ホストが大きくなってシまうので、線形変換を施す。

カーネルトリック

距離の計算の方法を下の関数をもちいて、おこなう。

 \kappa (\vec{x}^i, \vec{x}^j) = \phi(\vec{x}^i)^T\phi(\vec{x}^j)

動径基底カーネル

 \kappa (\vec{x}^i, \vec{x}^j) = exp\left(- \frac{||\vec{x}^i - \vec{x}^j||^2}{2\sigma^2}\right) = exp\left(- \gamma ||\vec{x}^i - \vec{x}^j||^2\right)

で計算できる。

参考図書・資料として挙げられていたもの

SVM

The Nature of Statistical Learning Theory (Information Science and Statistics)

The Nature of Statistical Learning Theory (Information Science and Statistics)

 
サポートベクトルマシン (機械学習プロフェッショナルシリーズ)

サポートベクトルマシン (機械学習プロフェッショナルシリーズ)

 

link.springer.com

https://www.di.ens.fr/~mallat/papiers/svmtutorial.pdf

参考図書一覧↓

yosuke-programing.hatenadiary.com

 

Python機械学習プログラミングの他の記事はこちら↓

yosuke-programing.hatenadiary.com

 Amazonはこちら↓

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)