ご覧いただきありがとうございます。大変恐縮ながら、ミスがあった場合はズバっとコメントして頂けると幸いです。
*細かい計算方法の理由や計算のカラクリを一部飛ばしてお送りしております。。。。。。
*図は参照させて頂いたサイト及びyoutubeからご覧いただけます。。。。。。
*一部情報欠陥により解釈が難しい場合があるため一番最後の参照させて頂いたサイト、youtubeをご覧になりながらみることをお勧めいたします。。。
大まかなSVMの流れ
80%①マージンの最適化をするための定式を求める
10%②①の式をさらに簡単に見やすくする。
10%③マージンの最適化の式を活用するにあたって一番扱い易い形に変形。
SVMって何?
分類を行う。
具体的に行うことはハードマージンやソフトマージンの最大化を行う。
ハードマージンは、わかりやすくグループに固まって分類可能なバリアンス(分散)を扱う。
ソフトマージンは、はっきりとグループごとに固まっていないバリアンス(分散)を扱う。
;ソフトの場合、道の外側にあるかないかで分類分けをしマージンの中にある値は全て小数点込みの形で考え分類分けをする。
マージンの最大化とはどのようなことか?
マージンの最大化とは、分類線を複数引いた際に一番データから離れているマージンを見つける。その条件から見つけた分類線から一番近いデータのことをサポートベクトルという。データの分離性が最大となる直線を探す。
ハードマージン
どうやって分類しているの?
上の分類境界を基準として、サポートラインを決める。
第一分類(k1)に含まれる場合〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
w^tx_i+b>0
↓
x_i\in k_1
第二分類(k2)に含まれる場合〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
w^tx_i+b<0
↓
x_i\in k_2
となる。第二分類に含まれる値は負の値であることをしっかりと抑える
*wは重み、bはバイアス(スカラー)のこと
疑問1、スカラーって何
A,大きさのみを表して、方向を表さない数のこと・・・・
例)⭕️1 ❌1、2、3、4 連なり方向を表す数となっている?
ここで高校数学をちょっと学習。
点と直線の距離を求める。
勉強したこと忘れていたが、公式を使うらしい。
d=\frac{|w_1x_1+w_2x_2+c|}{{\sqrt{w_1^2+w_2^2}}}
という公式。演習はyoutubeなどを活用するとわかりやすいかと
で、、これを何に使うのかというと単純に分類境界と各数値との間の計算に使う
上記の点と直線の距離を求める公式は2次元の場合となる。
他のN次元上(、、表しにくいが)の場合の公式は少し異なるが基本的には同じ
d=\frac{|w_1x_1+w_2x_2+....w_nx_n+c|}{{\sqrt{w_1^2+w_2^2....w^2_n}}}
んでこれを一般化すると(Nに適当な数字入れればなんでなるかわかるはず)
d=\frac{|w^tx+b|}{{||w||}}
補足;||w||は重みベクトルのノルム(長さ)。
ってなる。
んでこれを最適化されたものを計算すると
\frac{t^i(w^tx_i+b)}{{||w||}}>=M
*tはラベルと言って分類によって数値分けしていくもの。
上記の式を言語化して説明すると
マージンを超える値をとらないようなデータ」というマージン最適化の制約式となっている。
さらに式変形をして簡単な形に
↓
\frac{t^i(w^tx_i+b)}{{M||w||}}>=1
t^i(\tilde{w}^tx_i+\tilde{b})=1
疑問2、なんだwとbの上にあるふにゃふにゃは???
A,チルダというらしい。意味はおおよそという意味。分数が出てきて割り切れない?からこのような表記かな?
で次にサポートベクトルに当てはめて考える。
\frac{t^i(\tilde{w}^tx_i+\tilde{b})}{{||w||}}>=1
*でこの時一瞬先ほどのサポートベクトルの式にチルダがついてて混乱しそうになったが、式が変形したもの。つまり、深く考える必要はない。
結果的に
\frac{1}{{|\tilde{|w||}}}
が成り立つ。目的関数完成。
疑問3、目的関数ってなに
A,今回の場合は、幾何マージン(分類線とそれぞれサポートベクターまでの距離)かな?
最小にしたい、あるいは最大にしたい値、あるいは関数値のことを目的関数といいます。http://research.nii.ac.jp/~uno/opt_1.htm#:~:text=%E6%9C%80%E5%B0%8F%E3%81%AB%E3%81%97%E3%81%9F%E3%81%84%E3%80%81%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF%E6%9C%80%E5%A4%A7,%E5%95%8F%E9%A1%8C%E3%81%A8%E5%91%BC%E3%81%B0%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82
制約条件も含めて考えてみる。
17スライド目を参照あれ。
疑問4、なぜマージンを最大化してからその逆数をとってマージンの最小化をする必要があるのか?
A,単なる置き換えで上でマージンの最大化を求めたけれども結局その定式の逆数を取ってマージンの最小化を求めれば同じ答えが求まる。処理を行った方が計算がしやすくなるため式変形した
ソフトマージン
ハードマシーンのように頑固な制約を与えることはむりなのでハードマージンの時よりも制約を緩めるイメージを持ってやる。
で早速意味わからない記号が出現。
疑問5、スラック?スラッグ変数って何?
A,つまり不等式どんとひとつに表さずに分解して表そう的な??変形のカラクリについては、触れないがこれは公式見たく型が決まっているっぽい
不等式において両辺の差, すなわち余裕分を表す変数のこと. スラック変数y \, を用いると, 不等式制約 g(x)\leq b\, を等式制約 g(x)+y=b\, と非負条件 y\geq 0\, によって表すことができる.https://www.weblio.jp/content/%E3%82%B9%E3%83%A9%E3%83%83%E3%82%AF%E5%A4%89%E6%95%B0
ハードマージンと交えて説明。
ハードマージンの方は線形分離をしていくため、マージンの中にデータが入ってくることはないがソフトマージンはマージンの中にデータが入ってくる可能性がある。つまりハードマージンのようにtラベル変数で求められる整数の2値では対応しきれなくなってしまう。基本概念を崩さずマージンの最適化を行うためには小数点を含む整数以外の形で対応していく必要がある。ここで登場するのがスラッグ変数。スラッグ変数を使用することでマージン(道)の中に進入しているデータを柔軟に分類処理をしていく。つまり、ソフトマージンの場合はハードマージンとは違い線形分離をすることが難しくハードマージンのマージン最適化の定式を使用して考えていくような形になる。
まとめ
ハードマージンは頑固
ソフトマージンは柔軟
わからなくなったらこちらの方が早いかもです↓
参照させて頂いたサイト
https://www.slideshare.net/ssuser186f56/svm-146231602
https://www.youtube.com/watch?v=cNEhKEb9-JU