情報処理試験を勉強していると、「サポートベクターマシンって名前は聞くけど、結局何をする手法なの?」と戸惑う方は多いです。
対象試験と出題頻度
サポートベクターマシン(SVM)は、応用情報技術者試験のシラバスVer.7.0で「情報に関する理論」の機械学習手法として明記されたテーマです。
ディープラーニングやランダムフォレストなど他の機械学習手法との違いを整理しておくと、選択肢の消去に役立ちます。
詳細をクリックして確認
応用情報技術者
★★★☆☆
ランクC(応用)余裕があれば覚える
用語の定義
サポートベクターマシン(Support Vector Machine/SVM)とは、一言で言うと
「データを2つのグループに分類するための境界線を、最も余裕(マージン)が大きくなるように引く機械学習アルゴリズム」
のことです。
イメージとしては、「体育の授業で紅白チームに分かれるとき、両チームからできるだけ離れた位置にロープを張る」ような感覚です。
ロープの位置が境界線、ロープに一番近い生徒がサポートベクターに相当します。両チームから等距離でギリギリのところに立つ生徒の位置をもとに、ロープの張り方が決まるわけです。
📊 サポートベクターマシンの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Support Vector Machine(SVM) |
| 学習タイプ | 教師あり学習(分類・回帰) |
| 主な用途 | 2クラス分類(スパム判定、画像認識など) |
| キーワード | マージン最大化、超平面、カーネル関数、サポートベクター |
解説
機械学習では「既知のデータをもとに、未知のデータがどちらのグループに属するかを予測する」分類タスクが頻繁に登場します。分類の精度を高めるために重要なのは、2つのグループの境界をどこに引くかです。
SVMが他の手法と異なるのは、単に「正しく分けられる境界線」ではなく、「両グループから最も離れた境界線」を求める点にあります。
この”離れ具合”をマージンと呼び、マージンを最大にする境界線(超平面)を見つけることが学習の目標です。
マージン最大化の仕組み
下の図解で、2クラスのデータを分離する境界線とマージンの関係を確認してください。
マージン最大化のイメージ
▲ 太枠の点がサポートベクター。境界線に最も近いデータ点だけが境界の位置を決める
ポイントは、マージンの幅を決めるのは全データではなく、境界線に最も近いごく少数のデータ点(サポートベクター)だけだという点です。
そのため、外れ値に強く汎化性能が高いアルゴリズムとされています。
もう少し詳しく知りたい方はこちら(カーネル法)
現実のデータは直線1本では分けられないことが多いです。そこで登場するのがカーネル関数です。カーネル関数を使うと、データを元の空間より高次元の空間に写像し、その高次元空間上で直線(超平面)による分離を行います。元の空間では曲線的な境界が引けるようになるため、非線形な分類にも対応できます。
代表的なカーネル関数には、線形カーネル、多項式カーネル、RBF(ガウス)カーネルなどがあります。ただし、応用情報技術者の試験範囲ではカーネル関数の数式を問われることはないので、「直線で分けられないデータを高次元に飛ばして分ける工夫がカーネル法」と押さえておけば十分です。
他の機械学習手法との比較
SVMを正しく位置づけるために、シラバスに記載されている主要な手法と比較します。
| 手法 | 学習タイプ | 特徴 |
|---|---|---|
| SVM | 教師あり | マージン最大化で境界を決定。少量データでも高精度 |
| 決定木 | 教師あり | 条件分岐をツリー構造で表現。結果が人間に読みやすい |
| ランダムフォレスト | 教師あり | 複数の決定木を組み合わせて多数決。単体の決定木より高精度 |
| ニューラルネットワーク | 教師あり/なし | 脳の神経回路を模したモデル。多層化するとディープラーニング |
| k-means法 | 教師なし | データをk個のクラスタに分割する手法。ラベルなしデータ向け |
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 SVMの核心を3行で
・2クラスのデータを分離する境界線(超平面)のマージンを最大化するアルゴリズム
・境界線の位置を決めるのは、境界に最も近い少数のデータ点=サポートベクター
・カーネル関数で高次元に変換すれば、非線形な分類にも対応できる
試験ではこう出る!
SVMは、応用情報技術者試験のシラバスVer.7.0(2024年秋期試験以降適用)で「情報に関する理論」の用語として追加されました。IPA公式シラバスでは「サポートベクトルマシン(SVM)」と表記されています。
SVM単体を正面から問う過去問は、私の把握する範囲ではまだ出題されていません。ただし、シラバスに明記された以上、今後の午前問題で「機械学習手法の説明として正しいものを選べ」という形式で出題される可能性は十分にあります。
📝 想定される出題パターン
パターン1:「SVMの説明を選べ」
機械学習手法の説明文が4つ並び、SVMに該当するものを選ぶ形式。ひっかけとして「複数の決定木を組み合わせる」(ランダムフォレスト)、「データをk個のクラスタに分割する」(k-means法)、「報酬を最大化する方策を学習する」(強化学習)が混在する。「マージン最大化」「超平面」がSVMを特定するキーワードになる。
パターン2:「教師あり学習の手法をすべて選べ」
AP R7春 問3のように、機械学習の概念を横断的に問う問題でSVMが選択肢に登場するパターン。SVMは教師あり学習に分類される点を即答できるようにしておく。
試験ではここまででOKです。カーネル関数の数式やソフトマージンの最適化問題まで深追いする必要はありません。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. 機械学習の手法であるサポートベクターマシン(SVM)の説明として、最も適切なものはどれでしょうか?
- A. 複数の決定木を生成し、それぞれの予測結果の多数決によってクラスを決定する手法。
- B. ラベルなしのデータをk個のクラスタに分割し、各クラスタの重心を繰り返し更新することで分類する手法。
- C. データを分類する境界線(超平面)と各クラスのデータ点との距離(マージン)を最大化することで、最適な分離境界を求める手法。
正解と解説を見る
正解:C
解説:
SVMは、2つのクラスを分離する超平面のうち、両クラスからの距離(マージン)が最大になるものを選ぶ教師あり学習の手法です。
選択肢Aはランダムフォレストの説明です。ランダムフォレストは複数の決定木を使ったアンサンブル学習であり、マージン最大化の概念は含みません。選択肢Bはk-means法の説明です。k-means法はラベルなしデータを扱う教師なし学習であり、教師あり学習であるSVMとは学習タイプ自体が異なります。
よくある質問(FAQ)
Q. SVMは分類だけでなく回帰にも使えますか?
使えます。分類版を SVC(Support Vector Classification)、回帰版を SVR(Support Vector Regression)と呼びます。SVRではマージンの内側にデータ点が収まるように回帰直線を引きます。ただし、IPA試験の範囲では分類用途として押さえておけば問題ありません。
Q. SVMとロジスティック回帰はどちらも分類に使えますが、何が違いますか?
ロジスティック回帰は各データ点が「あるクラスに属する確率」を出力する手法で、確率的な解釈がしやすい特徴があります。一方、SVMはマージン最大化に特化しており、確率値を直接出力しません。少量のデータで高次元の特徴量がある場合はSVMが強く、大規模データでは計算コストの面でロジスティック回帰が有利になる場面が多いです。
Q. 「サポートベクター」と「サポートベクトル」、どちらの表記が正しいですか?
IPAの公式シラバス(Ver.7.2)では「サポートベクトルマシン(SVM)」と表記されています。一方、IBMなどの海外ベンダーの日本語訳では「サポートベクターマシン」が使われています。どちらも同じ手法を指しており、試験では両方の表記に対応できるようにしてください。
Q. 実務ではSVMはどのような場面で使われていますか?
テキスト分類(スパムメール判定、感情分析)、画像中の物体検出、医療データの診断補助などで使われています。特に、学習データが少なく特徴量が多い場面(遺伝子発現データの解析など)ではディープラーニングよりSVMが選ばれることがあります。近年はディープラーニングの台頭で主役の座を譲った場面も多いですが、計算コストの低さと解釈しやすさから、現在でも有力な選択肢の一つです。