<金融アトラス/a>

金融アトラス

個人の勉強も兼ねて、少しずつまとめます。

サポートベクターマシン(SVM)とは何か

 

本ページでは、サポートベクターマシンSVM)とは何かについてまとめたい。サポートベクターマシンとは、機械学習機械学習の中でも教師あり学習に分類される手法である。データ群を2つのクラスに分割するような境界(線・超平面)を見つけるアルゴリズムである。

 

サポートベクターマシンでは、「マージン」を最大化しようとする。マージンとは、境界線とサポートベクターの距離を意味する。サポートベクターとは、境界線から最も近いデータである。要するに、境界とデータの距離の最小値がマージンである。このマージンが最大となるような境界線を決めることで、データ群を2つのタイプに分類することが可能となる。

 

境界をw・X+b=0で表す。yをXのタイプによって1または-1を取るものと定義すると、マージンmはm≦yi(w・Xi+b) / ||w||になる(||w||はn種類のwの2乗和の平方根)。ここで、1≦yi(w・Xi+b)となるようにw、bの値を取りなおす(標準化)。新たなwの下では、||w||=1/mとなる。このmが最大になるような||w||を求めるが、この問題を1/2||w||^2を最小化する問題に置き換える。以上の説明を示したのが以下の図である。

Cano, Alberto. (2018)より抜粋

ラグランジュ未定乗数法によってwを求める。

 

以上の例は、データセットを線形に分離できる場合であったが、それが難しい場合もある。一つの対処法としては、分類の違反度を示す変数ξを導入し、この和(にパラメータCをかけたもの)を損失関数とし、これも含めて最小化問題を解くというものである(ソフトマージン)。

 

もう一つの対処法は、カーネルトリックという手法を用いることである。この手法を用いてデータを高次元にマッピングし、データを分類しやすくなるようにする。具体的な方法やカーネル関数については例えば以下の参考文献を参照。

 

(出典):

Cano, Alberto. (2018). A survey on graphic processing unit computing for large-scale data mining. Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery. 8. e1232. 10.1002/widm.1232. 

(参考):

高野祐一(2020)「サポートベクトルマシンとカーネル法オペレーションズ・リサーチ 2020 年 6 月号

axa.biopapyrus.jp