SVM は support vector machine の略で、クラス間の境界をできるだけ大きなマージンで選ぶ分類器です。SVMとは何かをひとことで言うなら、単にグループを分けるのではなく、その間にできるだけ広く信頼できるすき間を残す、という考え方です。
その境界に最も近い点をサポートベクターと呼びます。これらの点は、分離境界をどこに置けるかを決めるため、特に重要です。
なぜマージンが重要なのか
クラス A の点の集まりと、クラス B の点の集まりがあると考えてみましょう。両者を分ける直線はたくさん引けるかもしれません。SVM は、その両側に最も大きな安全な余白を残す直線を選びます。
この広いマージンによって、分類器は訓練データの小さな変化に対して敏感になりにくいことがあります。実際の性能向上が必ず保証されるわけではありませんが、これが SVM の中心的な直感です。
SVM の決定境界はどのような形か
線形 SVM では、決定境界は超平面です。
分類器は、 のとき一方のクラスを予測し、 のときもう一方のクラスを予測します。
分離可能なデータに対する標準的な最大マージンのスケーリングでは、SVM は と を次の条件を満たすように選びます。
これはすべての訓練点について成り立ち、同時にマージンができるだけ大きくなるようにします。このスケーリングでは、マージン全体の幅は
実用上の大事な考え方は、式よりももっと単純です。この正規化された設定では、 が小さいほどマージンは広くなります。
具体例:1次元の SVM
1次元の例を見ると、マージンの考え方がわかりやすくなります。
負例クラスの点が と にあり、正例クラスの点が と にあるとします。
と の間にあるしきい値なら、どれでもクラスを分けられます。たとえば でも でも分離できますが、両側の余白は同じにはなりません。
この1次元の分離可能な設定では、SVM は最も近い異なるクラス同士の点の中点を選ぶので、決定しきい値は
となります。最も近い負例の点は 、最も近い正例の点は です。これらがサポートベクターです。どちらも境界から だけ離れているので、マージンはできるだけ広く、しかも左右対称になります。
この場合の分類器は、「 なら正例、 なら負例を予測する」と書けます。この単純な例が示しているのは、境界は遠くの簡単な点ではなく、近くにある判定の難しい点によって決まるということです。
ハードマージン SVM とソフトマージン SVM
ハードマージン SVM は、訓練データが完全に線形分離可能な場合にしか使えません。たった1点でもその条件を破る点があると、ハードマージンの設定ではデータに適合できません。
そのため、実用上の多くの SVM ではソフトマージンが使われます。ソフトマージン SVM も広いマージンを好みますが、いくつかの点がマージン内に入ったり、境界の反対側に入ったりすることを、ペナルティ付きで許します。
このトレードオフを制御するのがパラメータ です。 が大きいほど違反へのペナルティは強くなります。 が小さいほど柔軟性は高くなります。どちらが自動的に良いということはなく、データに依存するため、検証性能で確認する必要があります。
カーネル SVM が役立つとき
元の特徴空間では、直線的な境界だけでは不十分なことがあります。カーネル SVM は、カーネル関数を通して点同士を比較することでこれに対応します。これにより、巨大な変換後特徴ベクトルを明示的に書かなくても、曲がった境界を扱えるようになります。
重要なのは、その追加の柔軟性が本当に役立つのは、データのパターンが実際にそれを必要としている場合だけだということです。カーネルはモデルを改善することもありますが、調整を難しくすることもあるため、最初から当然の選択として使うのではなく、検証して判断すべきです。
SVM でよくある間違い
すべての点が同じように重要だと思う
SVM では、最も近い点が特に重要です。境界から遠い点は、最終的な分離境界にほとんど影響しないことがよくあります。
ハードマージンの前提条件を忘れる
完全な線形分離可能性は、実際に満たす必要がある条件であって、最初から成り立つ前提ではありません。クラスが重なっているなら、ソフトマージンか別のモデルが必要です。
特徴量のスケーリングを無視する
SVM は距離と内積に依存します。ある特徴量の尺度が他よりずっと大きいと、先に入力をスケーリングしない限り、その特徴量が境界を支配してしまうことがあります。
カーネルは自動的に優れていると思い込む
より柔軟な境界は訓練データにはよく適合するかもしれませんが、それがそのまま汎化性能の向上を意味するわけではありません。
SVM はどこで使われるか
SVM は、クラス間の境界が比較的はっきりしていて、マージンに基づく考え方が有効な分類問題で使われます。特に、小規模から中規模の表形式データの問題や、高次元の特徴空間がよく現れるテキスト分類でよく使われます。
また、support vector regression と呼ばれる関連手法によって回帰にも使われますが、それはここで説明した二値分類の設定とは別の枠組みです。
似た SVM の問題を試してみよう
例に出てきた1次元の点に、新たに の負例を1つ追加してみてください。すると、きれいで広いすき間はなくなります。ハードマージンにこだわると何が変わるか、ソフトマージンを許すと何が変わるかを考えてみましょう。この比較は、SVM の考え方をつかむ最も速い方法のひとつです。