titc.ai › BLOG

BLOG · AI入門・機械学習

SVM(サポートベクターマシン)の動きをアニメーションで理解する

「2つのグループの間に、いちばん幅の広い道を通す」仕組みを、動かして確かめる

公開日 / 著者 富田 良治(TITC合同会社 代表社員)

SVM(サポートベクターマシン)は、2つのグループを分ける線を引く手法です。ただし、ただの線ではありません。2つのグループの間にいちばん幅の広い「道」を通し、その道の真ん中を境界にします。たとえば「優良顧客とそうでない顧客」「良品と不良品」を分けたいときに使われます。下のデモで、道が少しずつ太く、まっすぐ整っていく様子を見てみましょう。

デモは2つあります。デモ1は「直線で分けられるデータ」(線形SVM)、デモ2は「直線では分けられないデータ」を3次元に持ち上げて、平面で分ける様子(非線形SVM)です。

動かして確かめる①:直線で分ける(線形SVM)

青い●と赤い✕が、2種類のデータ(たとえば優良顧客とそれ以外)です。横軸・縦軸は、たとえば「来店頻度」と「1回あたりの金額」だと思ってください。太い線が境界、点線が「道」の両端です。まずは「再生」を押してください。

ステップ数:0
サポートベクターの数:0 個(輪で囲んだ点)
道の幅:-
正解率:-
「再生」か「1ステップ進む」を押してください。

太い白線が境界、黄色の点線が「道」の両端です。背景の青っぽい側は「青●と判定」、赤っぽい側は「赤✕と判定」、明るい帯が道の中です。画面をクリック(タップ)すると点を追加できます。道の外側に足した点では境界が動かず、道の中に足すと引き直されます。

動かして確かめる②:3次元に持ち上げて平面で分ける(非線形SVM)

今度は、青い●が真ん中に集まり、赤い✕がそれを取り囲んでいます。どんな直線を引いても、うまく分けられません。そこで、各点に「中心からの距離の2乗」を高さとして足し、平面の絵を3次元に持ち上げます。すると、中心に近い青●は低いところに、遠い赤✕は高いところに分かれ、1枚の平面で切り分けられるようになります。「再生」を押すと、4つの段階を順に見せます。

段階:- / 4
正解率:-
サポートベクターの数:-
境界の円の半径:-
「再生」か「1ステップ進む」を押してください。

段階は ①平面の上では直線で分けられない → ②各点を高さ(中心からの距離の2乗)だけ持ち上げる → ③3次元で、線形SVMが平面を見つける → ④平面がお椀を切る切り口を真上から見ると、元の平面での丸い境界になる、の順です。画面をドラッグすると視点を回せます。

何が起きているのか:いちばん太い道を探す

2つのグループを分ける線は、実は無数に引けます。SVMは、その中からどちらのグループの点からも、できるだけ遠い線を選びます。言いかえると、2つのグループの間にいちばん幅の広い道(専門用語で「マージン」)を通す、ということです。余裕をもって分けておけば、新しいデータが来たときにも間違えにくいという考え方です。

  1. 最初:道はまだ決まっておらず、境界もありません。
  2. 調整:道の端に近い点や、道に入り込んでいる点に注目し、「この点をどれだけ重視するか」を少しずつ修正します。(デモでは1ステップごとに、境界の角度と道の幅が変わります)
  3. 落ち着く:どの点も道のルールを満たしたら終わりです。「道の幅が最大になりました」と表示されます。

直線で分けられないときは、見方を足して次元を上げる

デモ1のように、直線で分けられるデータばかりではありません。デモ2のように、青い点が赤い点に囲まれていると、どの直線を引いても分けきれません。そこでSVMは「見方(特徴量)を足して、次元を上げる」という工夫をします。平面(2次元)の点に「中心からの距離の2乗」という高さを足して3次元にすると、中心に近い点は低く、遠い点は高くなります。すると1枚の水平な平面で、きれいに分けられます。あとはデモ1と同じく、いちばん太い道を探すだけです。この平面を元の平面に戻すと、まるい境界線になります。

実際に点を持ち上げると、データが多いほど計算が重くなります。そこでカーネルは、持ち上げた先での点どうしの近さを、持ち上げずに計算できる近道です。「次元を上げる」効果だけを、軽い計算で得る工夫だと考えてください。

道の端に接している点を「サポートベクター」と呼びます。デモでは輪で囲まれた点です。境界を決めているのは、この少数の点だけです。ほかの点を動かしたり、道の外側に点を足したりしても、境界は変わりません。デモで実際に確かめてみてください。

使うときの注意点

中小企業での使いどころ

過去のデータに「優良顧客か否か」「解約したか否か」「良品か不良品か」のような正解が付いているとき、新しいデータがどちらに当たるかを予測するのに使えます。特に、データの件数がそれほど多くなく、項目が数個から数十個という中小企業の現場に向いています。予測の結果は、案内を送る相手の絞り込みや、検査の優先順位づけなどに役立ちます。どの項目を使うか、判定の結果をどう業務に活かすかを考えるのは、現場を知る人の仕事です。

ご相談

自社のデータで分類や予測を試したい、AIで業務を自走化したい——そうした相談は、AIエージェント自走化プログラムまたはお問い合わせからどうぞ。

AIエージェント自走化プログラム お問い合わせ

富田 良治

富田 良治(とみた よしはる)

TITC合同会社 代表社員

AI経営コンサルタント。中小企業診断士・ITストラテジスト。元ITエンジニアで駄菓子屋オーナー。 プロフィールを見る