サポートベクターマシン


 人間には卓越した学習能力が備わっている.人間は目で見たり,耳で聞いたものが何であるかをいとも簡単に認識できる.また,未知の環境に適応する能力も優れている.それに対し,コンピュータは,与えられた指示(プログラム)どおりに高速に計算を行う能力においては優れているが,学習能力という点においては,人間とは比較にならない.
 そこで,人間のような学習能力をもった機械(モデル)を作るための学習理論が発達してきた.その代表的な成果の1つとして,多層パーセプトロンが挙げられる.多層パーセプトロンは1980年代に開発され,これまで多方面に応用されてきた.しかし,望ましくない局所最適解への収束,中間層の素子数の選択など,いくつかの問題点がある.

 サポートベクターマシン(Support Vector Machine:SVM) は,このような問題を解決した学習機械として知られている.サポートベクターマシンとは,1995年に,AT&TのV.Vapnikによって統計的学習理論の枠組みで提案された学習機械のことである.SVMは,特にパターン認識の能力において,最も優秀な学習モデルの1つであることが知られている.そこで,本研究室ではサポートベクターマシンに注目し,これを用いた分類問題の解法に関する研究を行っている.
 ここで,SVMについて説明するために,分類問題の中で最も簡単な,2種類のデータの分類を考える.すなわち,図1のように,のデータとのデータを分類する.ここでは,分類のようすをグラフィカルに表現するために,これらのデータは,と表されるような2次元のデータとする.


図1:2次元データの分類

図2:マージン最大化

 このとき,与えられたデータを分類するということは,与えられたデータを用いて,それらをどのように分類したらよいかをSVMが学習している,と解釈できる.ここで,学習の本当の目的は,あらかじめ与えられたデータをうまく分類することではなく,学習に用いなかった未知のデータをうまく分類させることである.このような能力を,学習理論では汎化能力と呼んでいる.
 SVMでは,図2に示すように,分離超平面(ここでは直線)と,2種類のデータとの間の距離(これをマージンと呼ぶ)が最大になるような分離超平面が,最も汎化能力の高い超平面になるということを利用している.マージンを最大化する方法を定式化すると,2次計画問題に帰着することができる.そのため,最適解が唯一に定まり,局所的最適解に陥る心配がない.これがSVMの利点の1つである.

 SVMの基本的な構造は,図2に示すような線形しきい素子である.しかし,これでは線形分離不可能なデータに適用することができず,SVMの応用範囲は非常に限られたものになってしまう.そこで,SVMによって非線形な分類を可能にする方法として,高次元化が挙げられる.これは,非線形写像Φによって,元の入力データを高次元特徴空間に写像し,特徴空間において線形分離を行うという方法である.そうすることによって,結果的に元の入力空間においては非線形な分類を行っていることになる(図3).


図3:非線形写像による高次元化

しかし,これを実装化する際には,Φの計算は行わず,カーネル関数の計算に置き換えている.これをカーネルトリックという.カーネルトリックによって,SVMではΦを直接計算することを避け,計算上の困難を克服している.SVMによって,2次元データを非線形に分類した例を図4に示す.図中の実線が分離超平面(ここでは曲線)を表し,破線がマージンを表している.なお,マージン上の点のことを,サポートベクターと呼んでいる(図中で塗りつぶされた点).分離超平面を決定しているのは,サポートベクターだけであり,その他の点は,分離超平面の構成に寄与していない.


図4:SVMによる2次元データの分類の例

 SVMについて詳しく知りたい方は,http://www.kernel-machines.orgが参考になる.ここでは,SVMに関する文献や,ソフトウェアなどが公開されている.


Back