サポートベクトルマシン Python機械学習プログラミング第三章
サポートベクトルマシンは機械学習プログラミングをやればよく聞くものだ。しかし、、この本では、実装はしっかりやってくれているが、理論は感覚的なものでしっかりしていな気がする。しかし、調べてたら一冊の本になるくらいの内容である。(下に紹介されていた参考図書を載せた)下の本がよさそうであるが、この本では、データ分析がとにかくできるようになると考えると、今回は我慢して、PRMLなどを読むときを楽しみに頑張る!!
サポートベクトルマシン(SVM)
線形
今回はパーセプトロンの拡張である、サポートベクトルマシンである。サポートベクトルマシンでは、誤差を最小にするように直線を引いたが、SVMでは二次元で考えた時直線(決定境界)とデータとの差(マージン)を最大にするようにする。
もっとも近いサンプルとの時の線をサンプルでクラスラベルがあるときに。
となる。
この二つの直線の距離を最大化する直線を学習する。
直線で考えると分かりやすいが、というか進め方が進めがするのだが、この二つの直線を引くとこの二つの距離の倍数になる。これは、切片の差で、は等しいので、傾きが等しいため、この距離を最大化するのとこの切片の差を最大化するのと等しい。この二つのベクトルの差は、重みのベクトルの大きさで割ると求められるので、
となり右辺の最大化に帰着する。そして、この逆数の最小化になる。
この最小化は、この本の範囲外らしい2分計画法によって求められるらしい。
スラック変数
スラック変数という変数を用いて少しご分類を含ませることで、
そうすると、最小化するべき対象はいかになる。
Cはバリアンスとバイアスの調整
カーネルSVM
ある次元では、線形不分離であっても次元を増やせば、できることもある。この例では、2次元で直線で不分離であっても、3次元で平面を用いて、行えばいいとしている。
とする。しかしこの方法では、計算ホストが大きくなってシまうので、線形変換を施す。
カーネルトリック
距離の計算の方法を下の関数をもちいて、おこなう。
動径基底カーネル
で計算できる。
参考図書・資料として挙げられていたもの
SVM
The Nature of Statistical Learning Theory (Information Science and Statistics)
- 作者: Vladimir Vapnik
- 出版社/メーカー: Springer New York
- 発売日: 2010/10/21
- メディア: ペーパーバック
- この商品を含むブログを見る
サポートベクトルマシン (機械学習プロフェッショナルシリーズ)
- 作者: 竹内一郎,烏山昌幸
- 出版社/メーカー: 講談社
- 発売日: 2015/08/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
https://www.di.ens.fr/~mallat/papiers/svmtutorial.pdf
参考図書一覧↓
yosuke-programing.hatenadiary.com
yosuke-programing.hatenadiary.com
Amazonはこちら↓
[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)
- 作者: Sebastian Raschka,Vahid Mirjalili,福島真太朗,株式会社クイープ
- 出版社/メーカー: インプレス
- 発売日: 2018/03/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る