サポートベクターマシン(SVM) (G検定)

サポートベクターマシン(SVM)

1. 定義と概要

サポートベクターマシン(SVM)とは、2つのクラスに属するデータを分ける超平面(データを2つのグループに分けるための境界。2次元なら直線、3次元以上なら面にあたる)を、この境界と最も近いデータ点との距離であるマージンが最大になるように決定することで分類を行う、教師あり学習(正解のラベルが付いたデータをもとに学習する機械学習の方式)のアルゴリズムです。

この考え方は、目的変数(予測したい対象の値)を連続値として扱う回帰問題にも応用でき、その手法はサポートベクトル回帰(SVR)と呼ばれます。手書き文字認識やスパムメール判定、医療データの良性・悪性判別など、二値分類の代表例で使われてきました。

SVM以前の線形識別の手法では、境界線の引き方が一通りに定まらず、ノイズや外れ値(ほかのデータから大きく外れた特異な値)の影響で分類結果が不安定になりやすいという課題がありました。SVMは統計的な理論的裏付けをもとに、境界とデータ点の間の余白であるマージンを最大化するという明確な基準を導入しました。

これにより、未知のデータに対しても崩れにくい分類、つまり汎化性能(学習に使っていない新しいデータに対しても正しく予測できる能力)の高い分類を実現しています。ディープラーニングが主流になる以前は、画像認識や自然言語処理(人間が使うことばをコンピュータに処理させる技術)の分類タスクで広く使われた代表的な手法でした。

2. 試験対策ポイント

SVMの学習原理はマージン最大化(マージンが最大になるように境界を決める考え方)で、境界に最も近いデータ点であるサポートベクトル(境界の位置を決定づけるデータ点)との距離を最大にすることを指します。マージンやマージン最大化、サポートベクトルという用語そのものの詳しい仕組みは姉妹記事「マージン」「マージン最大化」「サポートベクトル」に譲ります。境界からの距離を最大化して汎化性能を高めるという原理そのものが、SVMを理解するうえでの中心的な論点です。

完全には分離できない場合への対応として、誤りを許さないハードマージン(データを完全に分離できることを前提にした境界の決め方)と、多少の誤分類を許容するソフトマージン(誤分類を許容しながら境界を決める方式)という考え方があります。その許容量を表すスラック変数(誤分類やマージンへのはみ出しをどれだけ許容するかを数値で表す変数)とあわせて、この一連の用語はセットで押さえておきたいところです。

数式的な扱いは姉妹記事に譲りますが、それぞれの言葉が何を担当しているのかは次のように区分できます。

用語 担当している役割
ハードマージン データを完全に分離できることを前提に境界を決める
ソフトマージン 多少の誤分類を許容しながら境界を決める
スラック変数 誤分類やマージンへのはみ出しをどれだけ許容するかを数値で表す

本記事で扱うのは、完全分離を前提にするか、多少のはみ出しを許容するかという位置づけの違いまでです。境界の引き方に幅を持たせる仕組みが用意されている、という枠組みの理解が中心になります。

直線(線形)では分けられないデータに対しては、カーネル法(カーネルトリックと呼ばれる計算の工夫を使って、データを高次元の空間に写したのと同じ効果を得る手法)によってデータを高次元の空間へ写像し、分離を可能にする拡張が行われます。カーネル関数(カーネル法で使う、データ同士の似ている度合いを計算する関数)の種類や計算の仕組みは姉妹記事「カーネル法」「カーネル関数」「カーネルトリック」に譲り、本記事では非線形データにも対応できる拡張があるという総論だけを扱います。

SVMは分類だけでなく、サポートベクトル回帰として数値予測にも応用でき、分類専用の手法だという誤解を避ける論点にもなります。

3. 関連概念との比較・相違点

k近傍法(予測したいデータの近くにある既知のデータの多数決で分類する手法)との最大の違いは、モデルを事前に作るかどうかという点にあります。SVMは学習時に境界であるサポートベクトルとマージンを計算してモデル化するのに対し、k近傍法は学習時にモデルを作らず、予測のたびに近傍のデータとの多数決で分類します。

仕組みの詳細は姉妹記事「k近傍法」に譲りますが、モデルを事前に作るかどうかという対比は、両者を理解するうえでの中心的な論点です。

ロジスティック回帰(データがある分類に属する確率を計算して分類する手法)との違いは、境界を決める基準にあります。SVMは境界とデータ点の距離であるマージンを最大化する幾何学的な基準で境界を決めるのに対し、ロジスティック回帰はデータがどちらのクラスに属するかの確率を最大にする基準で境界を決めます。

どちらも二値分類に使えますが、境界を決める基準の考え方が異なる点は取り違えやすい点です。三つの手法が分類の答えをどのように導くかを並べると、違いの所在がはっきりします。

手法 分類の答えの導き方
SVM 学習時にサポートベクトルとマージンを計算し、マージンが最大になる境界を作る
k近傍法 学習時に境界を作らず、予測のたびに近くの既知データの多数決で決める
ロジスティック回帰 どちらのクラスに属するかの確率を計算し、その確率を基準に境界を決める

どこで線を引くかという基準に着目して見分けると、手法の名称と原理の対応を取り違えずに済みます。

4. ビジネス・実務での活用シナリオ

画像・文字認識の分野では、手書き文字やパターンの分類において、少ないデータ量でも高い精度で識別できる特性を活かし、ディープラーニングが普及する以前から画像分類タスクの代表的な手法として使われてきました。この特性により、大量の書類や画像を人手で目視確認する作業を減らし、識別処理にかかる時間と手間を抑える効果を発揮します。

医療診断の現場では、検査データをもとにした良性・悪性の判別など二値分類のタスクで、サンプル数が限られやすい医療データでも高い精度を出しやすい特性から、診断支援に活用されています。少ないサンプルでも安定した判別ができるため、症例数の少ない疾患でも見落としを防ぎ、医師が下す一次判断を後押しする役割を果たします。

テキスト分類・迷惑メール判定の分野では、単語の出現有無など次元数の多い特徴量(分類の手がかりとなるデータの要素)を扱うテキスト分類において、高次元データに強いSVMの特性がスパムメール判定などの分類タスクに活かされています。この精度の高さが、迷惑メールの見逃しや誤判定を防ぎ、担当者が受信メールを一件ずつ確認する負担を軽くすることにつながっています。

5. 要点まとめ

  • サポートベクターマシン(SVM)は、境界とデータ点の距離であるマージンを最大化することで分類を行う教師あり学習のアルゴリズムで、目的変数を連続値に拡張したサポートベクトル回帰(SVR)として回帰にも応用できます。
  • 完全分離を前提にするハードマージンと誤分類を許容するソフトマージン、非線形データに対応するカーネル法という拡張があり、それぞれの詳細は関連用語の記事で扱われます。
  • 学習時にモデルを作らないk近傍法や、確率を基準に境界を決めるロジスティック回帰とは、境界を決定する基準の考え方が異なります。

6. 確認問題

問1サポートベクターマシン(SVM)は、境界と最も近いデータ点との距離であるマージンを最大化することで、未知のデータに対する分類の安定性を高める教師あり学習の手法である。

解答・解説をみる

○ 正しい

マージン最大化はSVMの学習原理そのものであり、境界からの余白を最大にすることで汎化性能を高めます。マージンやサポートベクトルの詳しい仕組みは姉妹記事で扱われます。

問2SVMは分類問題だけに使われる手法であり、目的変数が連続値になる回帰問題には応用できない。

解答・解説をみる

× 誤り

正しくは、SVMの考え方を回帰に拡張したサポートベクトル回帰(SVR)として数値予測にも応用できます。分類専用という理解は誤りです。

問3SVMは直線(線形)で分離できないデータに対して、カーネル法によりデータを高次元の空間へ写像することで非線形な分離を可能にする拡張を持つ。

解答・解説をみる

○ 正しい

カーネル法(カーネルトリック)による非線形分離への拡張は、SVMの特徴の一つです。詳しい仕組みは姉妹記事「カーネル法」に譲ります。