サポートベクターマシン(マージン最大化)
2クラスを分ける直線のうち、両側の余白(マージン)を最大にする境界。
10
C が大きいほど誤分類に厳しく(ハードマージン寄り)、小さいほど外れ値に寛容(ソフトマージン)。
点をドラッグで移動。点を右クリック(またはダブルタップ)で削除。
マージン幅 2/‖w‖
—
サポートベクトル数
—
誤分類数
—
クラス +1(赤)
クラス −1(青)
分離直線 w·x+b=0
マージン境界 ±1
サポートベクトル
サポートベクターマシン(SVM)は、2 クラスを分ける直線のうち
両側の余白(マージン)が最大になるものを選ぶ分類器です。
決定境界は
点をドラッグして配置を変え、スライダー
決定境界は
w·x + b = 0。その両側に w·x + b = ±1 の 2 本の破線(マージン境界)を引き、
この帯の幅 2 / ‖w‖ を最大化します(= ‖w‖²/2 を最小化)。点をドラッグして配置を変え、スライダー
C でソフトマージンの寛容さを変えてみましょう。
いま何が起きている?
ここがポイント
- 一番「余裕」のある境界を選ぶ ── 余白が広いほど、新しい点が来てもはみ出しにくい=汎化が良い。
- 境界はサポートベクトルだけで決まる ── マージン上/内側のごく一部の点(橙の輪)だけが
w, bを決め、奥にある点をいくら動かしても境界は変わらない。 - C を下げると軟マージン ── 誤分類のペナルティが軽くなり、外れ値を 1 点犠牲にしてでもマージンを広く取る。C を上げると 1 点も間違えまいと境界が外れ値に引きずられる。
- 目的関数 ──
min ½‖w‖² + C·Σ max(0, 1 − yᵢ(w·xᵢ+b))。第 1 項がマージン最大化、第 2 項(ヒンジ損失)が誤分類ペナルティ。