サポートベクターマシン(SVM)

・SVMとは:各クラスのパターン識別において訓練サンプルから、各データ点との距離が最大となるマージン最大化境界を求める分類器である。

・線形SVM:2クラス分類問題では、特徴ベクトルxがどちらのクラスに属するか判定するために決定関数(decision function)と呼ばれる関数f(x)が使われる

画像1

分類判定関数は以下で、符号の正負でクラスを分ける

画像2

・ハードマージン:訓練サンプルが完成に線形分離可能である場合のマージン

画像3

・ソフトマージン:訓練サンプルが完成に線形分離できない場合のマージン

画像4

・スラック変数とは:ソフトマージン内に入るデータや誤分類されたデータに対する誤差を表す変数である。

・カーネルを用いた非線形分離への拡張:

画像5

非線形分離のアイディアは高次元データへの拡張で、数学的には写像(map)と呼ばれる。以下が拡張の一例

画像6

画像10

しかし元拡張により、パラメータ最適化の解を得るには以下の内積部分の計算量が莫大になる

画像7

・カーネルトリック:上記の計算量問題を解決するために、カーネル関数(内積なのでスカラー)を用いる。

画像8

代表的な関数は次の3つである。

画像9

*ガウスカーネルはRBF (radial basis function)カーネルと呼ぶこともある

考察

・SVM単体だけでは2クラスの分類しかできないが、多クラス分類へ応用する際に複数SVMを組み込む。結果的にAクラスとAクラス以外、BクラスとBクラス以外...という風に応用できる。

・非線形カーネルにおいてデータを高次元へ写像する考えはニューラルネットワークの中間層チャネル数を増やすことに相当する。

この記事が気に入ったらサポートをしてみませんか?