機械学習の具体的手法
G検定のSVMとサポートベクター・カーネル
G検定のシラバスには、機械学習の代表的な手法としてサポートベクターマシン(SVM)が並んでいます。SVMは、2つのクラスを分ける境界線を、最も近い点からの距離が最大になるように引く手法です。覚えるのは、マージンを最大にすること、境界を決めるのはサポートベクターだけであること、非線形はカーネルで扱うことの3つです。
このページは、小さな座標でマージンと距離を計算し、RBFカーネルの類似度が距離で下がる様子を数字で確かめます。
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-10-02。
試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。
結論
- SVM = 教師あり学習の手法。分類のほか、回帰や外れ値検出にも使える
- マージン = 境界線と、最も近い訓練データとの距離。大きいほど汎化しやすいと考える
- サポートベクター = 境界線の位置を決める訓練データ。ほかの点は境界に影響しない
- カーネル = データを実際に変換せず、2点の類似度を計算して非線形の境界を作る仕組み
- C = 誤分類を許す度合いと単純さのバランス。大きいほど全部を正しく分けようとする
境界線と距離・マージンの計算
scikit-learnの公式ドキュメントによると、SVMは、どのクラスの最も近い訓練データからも距離が最大になる超平面を、良い分離とみなします。この距離がマージンで、一般にマージンが大きいほど汎化誤差が低くなるためです。2次元では超平面は直線です。
境界の直線を w·x+b=0 とし、w=(3, 4)、b=−5 とおきます(説明用の架空の値です)。w の長さは √(3²+4²)=5 です。点までの距離は、|w·x+b| を w の長さで割って求めます。
| 点 | w·x+b | 境界線までの距離 | 位置 |
|---|---|---|---|
| A(3, 2) | 3×3+4×2−5=12 | 12÷5=2.4 | 正の側。境界線から遠い |
| B(1, 1) | 3×1+4×1−5=2 | 2÷5=0.4 | 正の側。マージンの外側(片側0.2より遠い) |
| C(0, 0) | 3×0+4×0−5=−5 | 5÷5=1 | 負の側 |
マージンの境界を w·x+b=±1 とおくと、マージン全体の幅は 2÷‖w‖=2÷5=0.4 です。点B(1, 1)は w·x+b=2 で、境界線までの距離0.4は、マージン全体の幅0.4とたまたま同じ数字ですが、比べる相手は境界線からマージンの端までの片側0.2です。0.4は0.2を超えるので、点Bはマージンの外側にあり、境界線の位置には効きません。マージンの境界上に乗る点(w·x+b がちょうど±1)が、サポートベクターです。公式ドキュメントは、線形分離できない問題では、マージンの境界の内側にある標本もサポートベクターになると説明しています。用語はサポートベクターマシン(SVM)の用語集にもあります。
カーネルの計算
直線では分けられないデータは、カーネル関数で扱います。公式ドキュメントは、決定関数に使うカーネルとして、次の4つを挙げています。
| カーネル | 式 | イメージ |
|---|---|---|
| 線形 | ⟨x, x'⟩ | 直線(平面)で分けられるデータ |
| 多項式 | (γ⟨x, x'⟩ + r)^d | 次数dまでの組み合わせを使う |
| RBF(ガウス) | exp(−γ‖x−x'‖²) | 距離が近いほど1に近い類似度。曲がった境界 |
| シグモイド | tanh(γ⟨x, x'⟩ + r) | ニューラルネットワーク風の形 |
RBFカーネルは exp(−γ‖x−x'‖²) で、γ(gamma)は0より大きい値です。2点の距離を入れて、類似度を計算してみます。
| 条件 | 計算 | カーネルの値 |
|---|---|---|
| 距離の2乗2(点(0,0)と(1,1))・γ=0.5 | exp(−0.5×2)=exp(−1) | 約0.368 |
| 距離の2乗8(点(0,0)と(2,2))・γ=0.5 | exp(−0.5×8)=exp(−4) | 約0.018 |
| 距離の2乗2・γ=2 | exp(−2×2)=exp(−4) | 約0.018 |
| 距離の2乗8・γ=2 | exp(−2×8)=exp(−16) | 約0.0000001 |
距離が離れるほど値は0に近づき、gammaが大きいほど、近い点でなければ影響しなくなります。同じ距離の2乗2でも、γ=0.5なら約0.368、γ=2なら約0.018です。公式ドキュメントも、gammaが大きいほど、他の標本が影響を受けるには近くにある必要があると説明しています。カーネルの用語はカーネルの用語集で確かめられます。
Cとgammaの役割
公式ドキュメントによると、RBFカーネルのSVMでは、Cとgammaの2つを決める必要があります。Cはすべてのカーネルに共通で、訓練データの誤分類と、決定面の単純さのバランスを取ります。Cが小さいと決定面がなめらかになり、Cが大きいと訓練データをすべて正しく分類しようとします。gammaは、1つの訓練データの影響の広さを決めます。
- Cが大きい: 訓練データに合わせようとして、境界が複雑になりやすい(過学習の側)
- Cが小さい: 誤分類をある程度許し、境界が単純になる
- gammaが大きい: 近い点しか影響せず、境界が細かくなりやすい
- gammaが小さい: 遠い点にも影響し、境界がなめらかになる
どちらも、検証データで選びます。公式ドキュメントは、Cとgammaを指数的に間隔を空けた候補から、グリッドサーチで選ぶことを勧めています。検証の方法は交差検証のページで、過学習の考え方は過学習と正則化のページで確かめられます。
間違えやすい点
取り違えを、このページの例で4つ挙げます。
- 全部の訓練データが境界を決めると考える: 決めるのはサポートベクターだけで、マージンの外側にある点を少し動かしても境界は変わりません。
- マージンは小さいほど良いと考える: 一般にマージンが大きいほど汎化誤差が低くなります。
- Cを大きくすれば必ず良いと考える: 訓練データへの当てはめが強くなり、過学習の側に寄ります。
- カーネルは新しいモデルだと考える: 線形の枠組みのまま、類似度の計算を差し替える仕組みです。
「マージン最大化」「サポートベクター」「カーネル」を、SVMの3点セットとして覚えます。
問題文から読み取る
問題文の言い回しから、用語を絞れます。このページの整理から導いた読み方で、出題を予想するものではありません。
- 「境界線と最も近いデータとの距離を最大にする」とあれば、マージン最大化
- 「境界の位置を決める訓練データ」とあれば、サポートベクター
- 「線形分離できないデータを、高次元に写したように扱う」とあれば、カーネル(カーネルトリック)
- 「誤分類をどこまで許すかを調整する」とあれば、パラメータC(ソフトマージン)
G検定の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
よくある質問
サポートベクターとは何ですか?
決定関数を決める訓練データの部分集合です。scikit-learnの公式ドキュメントは、線形分離できる問題では、マージンの境界上にある3つの標本がサポートベクターで、線形分離できない問題では、マージンの境界の内側にある標本もサポートベクターに含まれると説明しています。それ以外の点は、境界線の位置に影響しません。
マージンを最大にすると、なぜ良いのですか?
公式ドキュメントは、一般にマージンが大きいほど分類器の汎化誤差が低くなるため、どのクラスの最も近い訓練データからも距離が最大になる超平面を良い分離とみなす、と述べています。「必ず」ではなく、一般的な傾向として説明されています。
カーネルトリックとは何ですか?
データを高次元に写して分ける効果を、写した後の座標を実際に計算せずに得る方法です。公式ドキュメントはカーネル関数を、線形・多項式・RBF・シグモイドとして紹介しています。このページのRBFの例のように、2点の距離から類似度だけを計算します。
SVMでは、特徴量のスケールをそろえる必要がありますか?
必要です。公式ドキュメントは、SVMはスケール不変ではないため、データのスケーリングを強く推奨すると述べています。たとえば各属性を[0,1]や[−1,+1]にそろえるか、平均0・分散1に標準化します。テストデータにも同じ変換を当てる必要があります。
