大きな画面での利用をおすすめします — アニメーションと操作がより快適になります。
入力

サポートベクターマシン

線形 SVM は分離可能なデータで最大マージン、すなわち二クラス間の最も広い空の通路を探し、その中央を境界にします。ハードマージンでは非零の双対係数を持つ点が支持ベクトルで、壁に乗ります。ソフトマージンでは通路内や誤った側の点も支持ベクトルになれます。

訓練誤りゼロだけでは境界を選べません。本課の十二点には全てを正しく分ける線が多数あります。最大マージンは空き幅で比較しますが、将来のデータに必ず最良とは限りません。

仕組み

向きを固定すると、両クラスの近い射影が最大の空帯を決めます。各向きの幅を比較します。重みを規格化して壁を

w·x+b=+1 と w·x+b=−1

にすると、垂直距離は 2/‖w‖。ハードマージンは yᵢ(w·xᵢ+b)≥1 のもとで ½‖w‖² を最小化する凸二次計画です。ラベルは ±1。双対係数は:

αᵢ≥0、w=Σαᵢyᵢxᵢ、Σαᵢyᵢ=0

相補性は αᵢ[yᵢ(w·xᵢ+b)−1]=0。壁より厳密に外の点は α=0 で重みに寄与しません。壁上なら非零が許されますが、冗長な壁点は α=0 の場合もあり、等号だけで支持とは断定できません。

ステップごとの例

初期の十二点は左上に A 六点、右下に B 六点、設定 C=0.1 です。分離可能な例の冒頭は C_HARD=1000 でハードマージン相当を示し、最後に設定の 0.1 を使います。 前半の α に 0.1 の上限はありません。

  1. 五本の線。 全て訓練誤りゼロで、正解率だけでは選べません。
  2. 向きの比較。 30° の空帯は 1.27、60.25° は 2.11。表と棒に残します。
  3. 最大幅。 45° で 2.83、w=(−0.50,0.50),b=0、境界は y=x。2/√0.5≈2.83 は両壁の総幅で、片側は約 1.415 です。右図は約 18.5°–80.5° の分離可能な向きで幅を示し、45° が頂点です。
  4. 三支持点。 A (−4,−2)、A (1,3)、B (2,0) は y(w·x+b)=1.00、最寄りの非支持点は 1.50。α は 0.05,0.20,0.25 で、0.05+0.20−0.25=0。重みも確認できます。

0.05(−4,−2)+0.20(1,3)−0.25(2,0)=(−0.50,0.50)

他九点は α=0 です。

  1. 非支持点を動かす。 B (5,0) を 6.58 移して (0.35,−4.65) へ。依然非活動制約なので、再求解しても w、b、支持三点、幅 2.83 は不変です。どんな移動でも無効という意味ではありません。
  2. 支持点を動かす。 B (2,0) を壁の外へ 2.00 動かすと幅は 3.54、B (0,−3) が支持役を引き継ぎます。移動量より制約の役割が効きます。
  3. ソフトマージン。 二点を戻して C=0.1。幅は 3.61、向きは 47.15°。A (1,3) と B (2,0) は正しい側に残りつつ帯の内側へ入ります。二つのマージン違反を許し、ノルムを小さくします。

ソフトマージンと C

重なりや誤ラベルはハード制約を不可能にします。ソフトマージンは:

½‖w‖² + C Σ max(0,1−yᵢ(w·xᵢ+b))

を最小化します。C はヒンジ損失とノルム罰則の相対価格で、学習率ではありません。少し帯へ入る点は小さな損失、深く入る点や反対側は大きな損失を負担します。違反一件を一律 C と数えません。

大きい C は違反を重く、小さい C は幅のための違反を許します。分離可能で十分大きな C なら、それ以上増やしてもハード解は同じです。本例は約 0.3 超で幅 2.83、「厳格 C=100」で確認できます。

間隙に B (−1,0) を加えるプリセットはまだ分離可能ですが、ハード幅は 0.71 へ縮み、追加点が三支持点の一つになります。C=0.3 で 2.83 が戻り、訓練一点を誤分類します。一誤りと四倍の幅の交換が有効かは検証データで判断します。

マージンの意味と費用

広い帯は近傍の摂動に余裕を与えますが、汎化は分布、ノイズ、仮定にも依存します。既存のマージンを満たす遠い非活動点を増やしても解が変わらない場合がありますが、データの価値を支持役だけで決めることもできません。

線形モデルは合成した w、b を保存すれば予測 O(d) で、全支持点を残す必要はありません。カーネル SVM は通常、各支持点との核計算が必要で、支持数が容量と遅延に関わります。密な核行列や一般 QP は標本数に二次の空間、二次から三次級の時間を要する場合があります。専用の線形ソルバーはもっと大規模に対応でき、全 SVM に同じ費用を当てはめません。

特徴単位が幾何を決めるので、訓練 fold 内で用途に合う尺度処理をします。C は対数グリッドで検証し、画面の 0.03–100 も対数刻みです。核では核パラメータも検証します。多数の支持点は予測費用の点検理由ですが、直ちに誤設定を意味しません。

境界ケース

  • 壁の等号は非零 α を許すだけで十分条件ではありません。冗長な壁点はゼロの場合もあり、役割は設定に依存します。
  • 非分離ならハード問題は実行不能です。通常の有限入力と正の C のソフト問題は違反を許します。B を A 群へ入れる編集では空帯の章を省きます。
  • 全支持点の α が C に張り付き、0<α<C の自由支持点がない場合、その一点から b を求める方法は使えません。KKT は b の許容区間を与える場合があり、一点へ縮退することもあります。プリセットは描きにくい領域を避けます。
  • 尺度差は間隔の意味を変えます。標準化は一般的な選択ですが、物理的意味のある全座標で必須とは限りません。
  • 重複点は双対係数を非一意にし得ますが、一般 SVM が解けなくなるとは限りません。入力は編集を明確にするため占有座標への移動を拒否します。

よくある間違い

  • 遠い点を増やせば必ず境界がよくなると思う。非活動制約なら α=0 のままの場合があります。
  • C をステップ幅と読む。目的を変える値で、反復幅はソルバー側の問題です。
  • 違反件数だけを罰する。C は各ヒンジ損失の大きさに掛かります。
  • 帯が常に空と思う。ソフトでも壁は ±1 ですが内部点を許し、幅は全点の最小余裕を意味しません。
  • 支持点を最も典型的・有益な点とする。現在の制約であり、除くと別の点が役を継ぐことも、残りの支持点だけで足りることもあります。
  • 最大間隔を用途に必ず最良とする。ノイズや重複では C とモデルを検証します。

簡略化の範囲

十二〜十三点、二次元の線形ソフト SVM を SMO で実際に解き、反復は裏側に置きます。分離可能な冒頭は大きな C で空帯を比べます。核、尺度処理、one-vs-rest など多クラス方式、交差検証は省略しています。適切な条件を満たす核へ内積を置き換えると元空間で曲線境界を作れますが、核とパラメータの選択、異なる予測費用が必要です。