SVM_ハードマージンとソフトマージン

両方とも線形SVM

 

ハードマージン過学習

A か B かをはっきり分けられることを前提としたマージンを
ハードマージンと呼ぶ。
マージン:判別する境界線とデータの距離

だが、下記のようにどうしても誤判別してしまうデータに対して
無理やり「 100 % 正確な判別」をしてしまうと貴重な判別特徴を見失ってしまい、
正しい分類規則が崩れ、予測の精度が下がってしまうことがある。
https://logics-of-blue.com/svm-concept/    より拝借。

f:id:koshinRan:20180601222935p:plain

 

このように、
教師データ ( 手持ちのデータ ) に対して無理に整合性を高め、
テストデータ ( 未知のデータ ) への予測精度が下がってしまう問題を
過学習という。

 

ソフトマージン

過学習せずに予測ができることを汎化性といい、
この汎化性を高める為に、あえて誤分類を許容するようにする。

誤判別を許容する前提としたマージンをソフトマージンという。

ソフトマージンは「境界線とデータはなるべく最小・誤判別は少なく」を
満たす為に、以下の値を最小にするようにする。
https://logics-of-blue.com/svm-concept/    より拝借。

f:id:koshinRan:20180601223551p:plain

パラメータ「 C 」というのは、誤判別をどこまで許容するかを表わす。
C が大きければ誤判別を許さず、小さいと誤判別を許容する。
C が無限大に大きければ、誤判別は 1 回も許容しないという制約になり
実質ハードマージンと変わらなくなる。

Cあらかじめ決めておく必要がある。
あらかじめ与えられていることが前提のパラメータを、
ハイパーパラメータという。

C は適当に決めるか、グリッドサーチなどを使用して
「もっとも予測精度が高くなるようにパラメータを調節する」技術もある。

なお、ソフトマージンの場合は識別されたデータに関しても
サポートベクトル ( 識別境界線を決める要素 ) だとみなす。

 

 

こちらから。
https://logics-of-blue.com/svm-concept/
https://qiita.com/rennnosuke/items/cd01aa855196340167df#soft_margin
https://qiita.com/rennnosuke/items/fab837825b64bf50be56

 

以上。