サポートベクターマシン(SVM)
・SVMとは:各クラスのパターン識別において訓練サンプルから、各データ点との距離が最大となるマージン最大化境界を求める分類器である。
・線形SVM:2クラス分類問題では、特徴ベクトルxがどちらのクラスに属するか判定するために決定関数(decision function)と呼ばれる関数f(x)が使われる
分類判定関数は以下で、符号の正負でクラスを分ける
・ハードマージン:訓練サンプルが完成に線形分離可能である場合のマージン
・ソフトマージン:訓練サンプルが完成に線形分離できない場合のマージン
・スラック変数とは:ソフトマージン内に入るデータや誤分類されたデータに対する誤差を表す変数である。
・カーネルを用いた非線形分離への拡張:
非線形分離のアイディアは高次元データへの拡張で、数学的には写像(map)と呼ばれる。以下が拡張の一例
しかし元拡張により、パラメータ最適化の解を得るには以下の内積部分の計算量が莫大になる
・カーネルトリック:上記の計算量問題を解決するために、カーネル関数(内積なのでスカラー)を用いる。
代表的な関数は次の3つである。
*ガウスカーネルはRBF (radial basis function)カーネルと呼ぶこともある
考察
・SVM単体だけでは2クラスの分類しかできないが、多クラス分類へ応用する際に複数SVMを組み込む。結果的にAクラスとAクラス以外、BクラスとBクラス以外...という風に応用できる。
・非線形カーネルにおいてデータを高次元へ写像する考えはニューラルネットワークの中間層チャネル数を増やすことに相当する。
この記事が気に入ったらサポートをしてみませんか?