サポートベクターマシン

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

サポートベクターマシン: support vector machine, SVM)は、教師あり学習を用いるパターン認識モデルの一つである。分類回帰へ適用できる。1963年に Vladimir N. Vapnik, Alexey Ya. Chervonenkis が線形サポートベクターマシンを発表し[1]1992年に Bernhard E. Boser, Isabelle M. Guyon, Vladimir N. Vapnik が非線形へと拡張した。

サポートベクターマシンは、現在知られている手法の中でも認識性能が優れた学習モデルの一つである。サポートベクターマシンが優れた認識性能を発揮することができる理由は、未学習データに対して高い識別性能を得るための工夫があるためである。

基本的な考え方[編集]

サポートベクターマシンは、線形入力素子を利用して 2 クラスのパターン識別器を構成する手法である。訓練サンプルから、各データ点との距離が最大となるマージン最大化超平面を求めるという基準(超平面分離定理)で線形入力素子のパラメータを学習する。

最も簡単な場合である、与えられたデータを線形に分離することが可能な(例えば、3次元のデータを2次元平面で完全に区切ることができる)場合を考えよう。

このとき、SVMは与えられた学習用サンプルを、もっとも大胆に区切る境目を学習する。 学習の結果得られた超平面は、境界に最も近いサンプルとの距離(マージン)が最大となるパーセプトロンマージン識別器)で定義される。 すなわち、そのようなパーセプトロンの重みベクトル を用いて、超平面は で表される。

学習過程はラグランジュの未定乗数法KKT条件を用いることにより、最適化問題の一種である凸二次計画問題で定式化される。 ただし、学習サンプル数が増えると急速に計算量が増大するため、分割統治法の考え方を用いた手法なども提案されている。

概念的特長[編集]

次のような学習データ集合 が与えられた場合を考える。

は 1 もしくは -1 の値を持つ変数で が属したクラスを意味する。 次元の特徴ベクトルである。

H3 は二つのクラスのいくつかの点を正しく分類していない。H1 と H2 は二つのクラスのいくつかの点を分類するのに、H2 が H1 よりもっと大きいマージンを持って分類することを確認することができる。

ニューラルネットワークを含む多くの学習アルゴリズムは、このような学習データが与えられた時 であるいくつかの点と であるいくつかの点とを分離する超平面をさがすのが共通の目標であるが、SVMが他のアルゴリズムと差別化される特徴はただいくつかの点を分離する超平面を捜すことで終わるのではなく、いくつかの点を分離することができる幾多の候補平面の中でマージンが最大になる超平面 (maximum-margin hyperplane) を探す点にある。ここでマージンとは、超平面から各いくつかの点に至る距離の最小値を言い、このマージンを最大にしながらいくつかの点を二つのクラスで分類しようとすると、結局クラス 1 に属するいくつかの点との距離の中の最小値とクラス -1 に属するいくつかの点との距離の中の最小値とが等しくなるように超平面が位置しなければならず、このような超平面をマージン最大の超平面という。結論として、SVMは二つのクラスに属しているいくつかの点を分類する幾多の超平面の中で、最大限に二つのクラスのいくつかの点と距離を維持するものを探すアルゴリズムといえる。

線形分離不可能な問題への適用[編集]

1963年にウラジミール・ヴァプニク英語版, Alexey Ya. Chervonenkis が発表した初期のサポートベクターマシンは、線形分類器にしか適用できなかった。 しかし、再生核ヒルベルト空間英語版の理論を取り入れたカーネル関数を用いてパターンを有限もしくは無限次元の特徴空間英語版へ写像し、特徴空間上で線形分離を行う手法が 1992年に Bernhard E. Boser, Isabelle M. Guyon, Vladimir N. Vapnik らによって提案された。 これにより、非線形分類問題にも優れた性能を発揮することがわかり、近年特に注目を集めている。

なお、カーネル関数を取り入れた一連の手法では、どのような写像が行われるか知らずに計算できることから、カーネルトリック (Kernel Trick) と呼ばれている。

主に下記のカーネル関数がよく使われていて LIBSVM でも実装されている。

構造化SVM[編集]

2005年に Ioannis Tsochantaridis らが構造化SVM(: structured SVM)を発表した[2]。任意のデータ構造を扱えるように拡張したものである。

通常の二値分類SVMは以下の値で分類する。

これは、このようにも書ける。

その上で、これを二値から一般の値に拡張する。 は入出力から特徴量を作り出す実数ベクトルを返す関数。問題ごとに定義する。

そして、下記の損失関数を最小化するように、最適化問題を解く。ここではL2正則化を付けている。 は正則化の強さを表す定数。 は出力の類似度を表す実数を返す関数。問題ごとに定義する。 であり、異なる値同士なら 0 よりも大きくなるように設計する。

上記の最適化問題を解くには工夫が必要であり、その後も提案が続いているが、2005年に提案された方法は下記のように上界となる関数 を作る。

その上で、下記の最適化問題を解く。

の作り方として2通りが提案された。

マージン リスケーリング
スラック リスケーリング

関連項目[編集]

参照[編集]

  1. ^ V. Vapnik and A. Lerner. Pattern recognition using generalized portrait method. Automation and Remote Control, 24, 1963.
  2. ^ Ioannis Tsochantaridis; Thorsten Joachims; Thomas Hofmann; Yasemin Altun (2005). “Large Margin Methods for Structured and Interdependent Output Variables”. The Journal of Machine Learning Research 6 (9): 1453-1484. http://www.jmlr.org/papers/volume6/tsochantaridis05a/tsochantaridis05a.pdf.