機械学習 サポートベクターマシン 講義課題視聴レポート (現場で潰しが効くディープラーニング講座)

### サポートベクターマシン
##### サポートベクターマシン(SVM)
- 2クラス分類のための機械学習手法
- マージンを最大化する決定境界を求める。
- それぞれのグループの中で最も決定境界に近いデータ点をサポートベクターと呼び、サポートベクターと決定境界の距離をマージンと呼ぶ。
![無題23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/9adc6d4e-fa9d-dc0a-01c6-c30dd9b3c630.png)
![無題24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/6e7f4026-4642-5f06-c1ae-276a5bf0a9b4.png)

##### 主問題
- 最適化問題には主問題と双対問題があり、お互いに補集合の関係であり、主問題を最小化する解は双対問題を最大化する解と一致するという性質がある
- 上記の目的関数と制約条件の最小化問題(主問題)をラグランジュ未定乗数法で解く(主成分分析と同様)
![無題25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/9e28ab92-3101-a855-b6b5-3880fef56eb2.png)

- ラグランジュ関数からwを消去した形が双対問題となる
![無題26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/6ab0d2d8-620e-8f7e-001a-09574f1697bd.png)

- 制約付き最適化問題において最適解が満たす条件をKKT条件(カルーシュ・クーン・タッカー条件)という。
![無題27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/79903cf1-d81b-7cb4-bc92-3a270503700b.png)

- 主問題、双対問題、KKT条件から最適解は以下の通りになる
![無題28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/969c908a-e4b4-7e05-bb4b-22ac5b170d42.png)
![無題29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/1a5d57c7-23d9-daf3-6e4f-b9409719936b.png)


##### ソフトマージンSVM
- 学習データを線形分離できないとき、誤差を許容し誤差に対してペナルティを与えるモデル
![無題30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/1b925990-8fd6-09d3-de57-1a39749658b4.png)

- ソフトマージンSVMの目的関数と制約条件は以下のようになる
![無題31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/f473492b-bc3d-a8ec-302f-ad7e95c7c1dd.png)
![無題32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/78662254-c11d-b665-b847-38b5d8102767.png)
- 線形分離できない場合でも対応できる。
- パラメータCの大小で決定境界が変化する。Cが大きいときは誤差をなるべく許容しないように、Cが小さいときは誤差をより許容するように決定境界が引かれる。

##### 非線形分離
- 線形分離できないときは特徴空間に写像し、その空間で線形に分離する方法がある。
![無題33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/eafc2b3c-d356-f5bf-f205-acb5906cd112.png)
![無題34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/a9a07c3b-51a3-a8f0-e5c5-0d2ee15ef568.png)

- より複雑な問題になると、上記の方法では計算が複雑になってしまう。そこで写像した特徴空間の内積が元の特徴ベクトルの関数で表す。これをカーネル関数と呼ぶ。このカーネル関数を使って非線形問題を解く方法をカーネルトリックと呼ぶ。
![無題35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/4b561346-a0bd-a68f-db04-a1fba075b48a.png)

- よく使われるカーネル関数は多項式カーネルとガウシアンカーネルの2つである
![無題36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/fad3bbda-d856-a6ab-3be3-fe3b6f6c619c.png)

##### ハンズオン
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/a04d47bc-8bb1-a5da-9e15-a78acdc567bd.png)
![無題1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/fdecb6e8-15e2-6a75-be4e-c21e13f656b9.png)
![無題2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/191a4a5f-99fc-b471-6a8c-048608a03473.png)
![無題3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/64aa7075-6628-16e5-4ec9-83b76257c392.png)
![無題4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/2cfe2587-5ce5-c5fa-d2d3-054293cf65b2.png)
![無題4.5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/74399d3c-22e3-ef1d-8d93-29e5f0230c59.png)
![無題5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/44351cc5-c72d-eda6-4a6e-b28a44b99818.png)
![無題6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/7dfe133d-6b4c-cb55-36f9-59f40bb252c1.png)
![無題7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/f9b952f2-5ba6-e09a-7acb-4ca4d885005c.png)
![無題8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/24edac31-c817-1f10-7e6c-f02c1230bfea.png)
![無題9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/03e6a1d5-cc7c-bede-6c28-1319005bb90d.png)
![無題10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/398cb694-eaa1-8d42-d3cf-f8170357db5b.png)
![無題11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/72d76d87-b21a-ee63-666d-1c6dccdb0ee0.png)
![無題12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/16c183c6-3f1c-8353-b537-882287bc3374.png)
![無題13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/4b38d7b2-4fd5-2489-8a84-d78f015f4cdb.png)
![無題14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/6c525157-bdb0-addb-f053-e564b2197f9a.png)
![無題15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/390abc0a-149b-de93-854b-6394e657c53d.png)
![無題16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/d6ea81aa-ccea-23a8-0b7f-846a8f97072d.png)

##### サマリーと考察
- ランダムなデータを生成し、線形分離、非線形分離、ソフトマージンSVMでそれぞれモデルを作成
- 線形分離、非線形分離はきれいに分けることができるようにデータが生成されているため、分離させることができた。実際の分析では、このようにきれいに分かれたデータを使うことは少ないと考えられるため、ソフトマージンSVMがよく使われると考えられる
- ソフトマージンSVMについて、パラメータCの大きさを変えて実行してみたところ、Cが小さい場合はマージンが大きくとられ、Cが大きい場合はマージンが小さくとられる。データのばらつき具合にもよるが0.1～1の間で決めるのが良いと考える。
![無題14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/12b1fb4b-3118-d78e-ccee-08ee782ce49e.png)
![無題15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/f2b1d2c4-ae6f-e6a7-d953-75ef86f3d518.png)
![無題126.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440745/ca522446-3889-dea3-5aa3-fe6ececd688a.png)

##### 参考文献
- 「東京大学のデータサイエンティスト育成講座」著者：塚本邦尊、山田典一、大澤文孝