SVMの境界線は直線なのか?初心者にもわかりやすく解説!

こんにちは。ゆうせいです。

Support Vector Machine(SVM)は、機械学習でよく使われる分類アルゴリズムの一つです。とてもパワフルなのですが、よくある疑問の一つが「SVMの境界線って直線なの?」というもの。

結論から言いますと……

場合によります!

もっと正確に言うと、線形SVMなら境界線は直線(または平面)ですが、カーネルSVMなら曲線にもなります。

では、それぞれ詳しく見ていきましょう。


線形SVM:境界は直線または平面

SVMの基本形は「線形SVM」と呼ばれます。これは、データが直線で分けられると仮定して分類を行います。

例えばこんな感じです:

Linear SVM

境界線を数式で表すと

線形SVMの境界線は、次のような式で表されます:

w \cdot x + b = 0

これはベクトルの内積で表現されています。日本語で言うと、

  • $w$(ダブリュー)は「重みベクトル」
  • $x$(エックス)は「入力ベクトル」
  • $b$(ビー)は「バイアス(定数項)」

です。

これは高校で習う一次関数($y = ax + b$)と同じイメージで、「平面上の直線」または「高次元空間の超平面(hyperplane)」を表します。


カーネルSVM:非線形な境界も引ける!

ところが、現実のデータは必ずしも直線で分けられるとは限りません

例えば、以下のようなデータがあったとします。

Nonlinear data

円形に分布しているので、直線ではうまく分類できません。

ここで登場するのが「カーネルSVM(Kernel SVM)」です!

カーネルって何?

カーネルとは、低次元のデータを高次元に写像(変換)する関数です。

例えるなら、2Dでは分けられなかったデータを3Dに持ち上げて、そこで平面で分けるようなイメージ。

これによって、非線形な分類問題もSVMで解けるようになります!

カーネルSVMの数式

代表的なカーネルの一つに「RBFカーネル(Radial Basis Function)」があります。RBFカーネルを使ったときのSVMは以下のような形になります:

K(x, x') = \exp\left(-\gamma |x - x'|^2\right)

これは「ガウス関数」に似ており、データの距離が近ければ値が大きく、遠ければ小さくなる関数です。

このようなカーネルを使うと、一見直線では引けなかった境界が、曲線としてうまく描けるようになります。


図で比較してみよう

タイプ境界線の形特徴向いているデータ
線形SVM直線(または平面)計算が速い、シンプル線形分離可能なデータ
カーネルSVM曲線も可能柔軟で複雑なデータに対応非線形なパターンがあるデータ

まとめ

SVMの境界線が直線かどうかは、使う**モデルの種類(線形かカーネルか)**によって変わります。

  • 線形SVM:直線(または高次元空間では平面)
  • カーネルSVM:曲線にもなる(データの分布に合わせて柔軟)

直線でうまくいくなら線形SVMがシンプルで速いですが、もっと複雑な境界が必要なときはカーネルSVMを使うとよいですね!


今後の学習の指針

次のステップとしては、以下を学んでいくとSVMの理解が深まります。

  1. ハードマージンSVMとソフトマージンSVMの違い
  2. 代表的なカーネルの種類(多項式カーネル、RBFカーネルなど)
  3. SVMのパラメータチューニング(Cやγの意味と調整方法)
  4. 実際のデータセットでSVMを動かしてみる(scikit-learnなど)

気になるテーマがあれば、気軽に教えてください!また一緒に掘り下げていきましょう!

生成AI研修のおすすめメニュー

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。