AI資格ドリル
資格を選ぶ↓

用語比較

ハードマージンとソフトマージンの違い|誤分類を許さないか、許すかで見分ける(G検定のSVM)

ハードマージンは、訓練データを誤りなく分けることを求めるマージン最大化です。ソフトマージンは、マージンの内側に入る標本や誤分類を一部許し、その分にペナルティを課すマージン最大化です。

G検定では、SVMの設問で、2つの考え方が混同されやすくなります。ハードマージンは1本の境界で完全に分けられるデータ向け、ソフトマージンは完全には分けられないデータにも使えると覚えると、選択肢を整理できます。

このページは、scikit-learn公式ドキュメントのSVMの節と、Cortes・Vapnikの論文『Support-vector networks』(1995年)の抄録をもとに、誤分類の扱い・分けられるデータ・パラメータCの役割の3点で比べます。数値の例は、説明用の架空のデータです。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。G検定の一次情報確認日: 2026-10-02。

結論

ハードマージン

訓練データが誤りなく分離できる場合を扱う。マージンの内側にも誤分類にも、標本を許さない。

ソフトマージン

正しいマージン境界から外れる標本を許し、その距離にペナルティを課す。ペナルティの強さをパラメータCが決める。

見分け方

「1つも誤分類を許さない」ならハードマージン、「許してペナルティを課す」ならソフトマージン。

違いを表で確認

比較軸ハードマージンソフトマージン
誤分類の扱いハードマージン:許さない(すべての訓練データを正しい側に置く)ソフトマージン:許す(許した分にペナルティを課す)
分けられるデータハードマージン:誤りなく分離できる訓練データソフトマージン:完全には分けられない訓練データにも使える
パラメータCの役割ハードマージン:誤分類を許さないので、Cで許す量を調整する場面がないソフトマージン:Cがペナルティの強さを決める。高いCはすべての訓練例を正しく分類することを狙い、低いCは決定面を滑らかにする
サポートベクトルハードマージン:マージン境界の上にある標本ソフトマージン:マージン境界の内側にある標本も、サポートベクトルになる
使うときの前提ハードマージン:線形分離可能であることソフトマージン:線形分離可能でなくてもよい

どこで迷っているかを切り分ける

01

「誤分類を許す」の語が出てどちらか迷う人

マージンの内側の標本や誤分類を許してペナルティを課すのは、ソフトマージンです。ハードマージンは、誤りなく分けられる場合を扱います。

02

パラメータCの語が出てどちらか迷う人

Cは、ペナルティの強さを決める値で、ソフトマージンの語です。scikit-learnは、Cを逆正則化パラメータとして働くと説明しています。

03

Cを大きくすると何が起こるか聞かれる人

高いCは、すべての訓練例を正しく分類することを狙います。低いCは、決定面を滑らかにします。誤分類へのペナルティが重くなるほど、訓練データに合わせようとします。

04

ロジスティック回帰との違いも整理したい人

どちらの手法かでなく、SVMの中の誤分類の扱いを聞く設問です。SVMとロジスティック回帰の違いは、別のページで比べています。

具体例で使い分ける

例 1

スラック(マージンからの不足分)を計算する(架空のデータ)

y(w·x+b)が1以上なら、標本はマージン境界の外の正しい側にある。標本Aはy(w·x+b)=0.4、標本Bは=-0.5だった。

  • 標本Aの不足分ζは、1-0.4=0.6です。正しい側にありますが、マージンの内側です。
  • 標本Bの不足分ζは、1-(-0.5)=1.5です。符号が負なので、誤分類されています。

結論: ハードマージンは、このような標本を許しません。ソフトマージンは、許したうえで不足分ζにペナルティを課します。

例 2

Cを変えたときのペナルティ(架空のデータ)

上の2標本のζの合計は、0.6+1.5=2.1。ペナルティ項を、Cにζの合計を掛けた値とする。

  • C=10なら、10×2.1=21です。
  • C=0.1なら、0.1×2.1=0.21です。

結論: Cが大きいほど、同じ誤分類が重く罰せられます。そのため、高いCは誤分類を避ける方向に境界を動かします。

問題文から答えを選ぶ手順

  1. 1

    誤分類の扱いを読む

    1つも許さないならハードマージン、許すならソフトマージンです。

  2. 2

    データを読む

    誤りなく分離できる訓練データならハードマージン、完全には分けられないならソフトマージンです。

  3. 3

    パラメータを読む

    ペナルティの強さのCが出てきたら、ソフトマージンです。

  4. 4

    サポートベクトルを読む

    マージン境界の内側の標本も含むなら、ソフトマージンです。

試験での見分け方

  • 1誤分類を許さないのがハードマージン。
  • 2誤分類やマージンの内側を許してペナルティを課すのがソフトマージン。
  • 3ペナルティの強さを決める値が、パラメータC。
  • 4線形分離可能でないデータには、ソフトマージンを使う。

誤答しやすい選択肢

ソフトマージンは、マージンを使わない手法だと考える

修正: ソフトマージンも、マージンを最大化する考え方のままです。マージンの内側に入る標本を許し、その分にペナルティを課す点が違います。

Cが大きいほど、決定面が滑らかになると考える

修正: scikit-learnは、低いCが決定面を滑らかにし、高いCがすべての訓練例を正しく分類することを狙うと説明しています。滑らかになるのは、Cが小さいときです。

サポートベクトルは、常に境界の上にあると考える

修正: scikit-learnは、問題が線形分離可能でないとき、サポートベクトルはマージン境界の内側にある標本だと説明しています。

確認問題

Q1訓練データを誤りなく分けることを求めるマージン最大化は?

答え: ハードマージン

誤分類もマージンの内側の標本も許しません。

Q2誤分類を一部許し、その分にペナルティを課すマージン最大化は?

答え: ソフトマージン

ペナルティの強さをパラメータCが決めます。

Q3ζの合計が2.1のとき、C=10のペナルティ項(C×ζの合計)は?

答え: 21

10×2.1=21です。

到達チェック

  • ハードマージンは誤分類を許さないと言える
  • ソフトマージンは誤分類を許してペナルティを課すと言える
  • 低いCは決定面を滑らかにすると言える

同じ資格で次に知りたいこと

よくある質問

Qハードマージンは、実際のデータでは使いにくい?

A

scikit-learnは、問題は通常ハイパープレーンで完全には分けられないと説明しています。誤りなく分けられるデータにだけ使えるので、使える場面は限られます。

QCはどう決める?

A

scikit-learnは、CとRBFカーネルのgammaを指数的に離した値で、GridSearchCVで選ぶことを勧めています。

Qソフトマージンの考え方は、いつ提案された?

A

Cortes・Vapnikの1995年の論文の抄録が、誤りなく分離できる場合の結果を、分離できない訓練データへ拡張すると述べています。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)