サポートベクターマシン

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

サポートベクターマシン(: Support vector machineSVM)は、教師あり学習を用いる識別手法の一つである。パターン認識回帰分析へ適用できる。

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

目次

[編集] 基本的な考え方

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

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

このとき、SVMは与えられた学習用サンプルを、もっとも大胆に区切る境目を学習する。 学習の結果得られた超平面は、境界に最も近いサンプルとの距離(マージン)が最大となるものとなる。

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

[編集] 概念的特長

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

\mathcal{D} = \{ (\mathbf{x}_i, c_i)|\mathbf{x}_i \in \mathbb{R}^p, c_i \in \{-1,1\}\}_{i=1}^n

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

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

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

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

サポートベクターマシンは、本来は線形分離不可能な問題には適用できない。 しかし、再生核ヒルベルト空間の理論を取り入れたカーネル関数を用いてパターンを有限もしくは無限次元の特徴空間へ写像し、特徴空間上で線形分離を行う手法が 1992年に Vladimir Vapnik らによって提案された。 これにより、非線形分類問題にも優れた性能を発揮することがわかり、近年特に注目を集めている。

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

[編集] 関連項目

[編集] 翻訳元

en:Support vector machine 2009-3-26 01:13 UTC から「概念的特長」の項を翻訳。

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語