サポートベクトルマシン法

サポートベクトルマシン法は, 空間を超平面で分割することにより 2つの分類からなるデータを分類する手法である. このとき,2つの分類が正例と負例からなるものとすると, 学習データにおける正例と負例の間隔(マージン)が 大きいもの(図3.2参照[*])ほど オープンデータで誤った分類をする可能性が低いと考えられ, このマージンを最大にする超平面を求め それを用いて分類を行う. 基本的には上記のとおりであるが,通常, 学習データにおいてマージンの内部領域に 少数の事例が含まれてもよいとする手法の拡張や, 超平面の線形の部分を非線型にする拡張(カーネル関数の導入)がなされたものが 用いられる. この拡張された方法は,以下の識別関数を用いて分類することと等価であり, その識別関数の出力値が正か負かによって 二つの分類を判別することができる[11,12].


Figure 3.2: マージン最大化
25#25


26#26 8#8 27#27 (5)
28#28 8#8 29#29  
30#30 8#8 31#31  

ただし,32#32 は識別したい事例の文脈(素性の集合)を, 33#33 34#34は 学習データの文脈と分類先を意味し,関数 35#35 は,式3.6である.


36#36 37#37 38#38 (6)
  39#39 40#40  

また,各41#41は式(3.8)と式(3.9)の制約のもと 式(3.7)の 42#42を最大にする場合のものである.


43#43 8#8 44#44 (7)


45#45     (8)


46#46     (9)

また,関数47#47 はカーネル関数と呼ばれ,様々なものが 用いられるが本稿では以下の多項式のものを用いる.


48#48   49#49 (10)

50#50は実験的に設定される定数である. 本稿では51#51,52#52はともにすべての実験を通して1に固定した. ここで, 53#53 となる 54#54 は, サポートベクトルと呼ばれ,通常,式(3.5)の和をとっている部分は この事例のみを用いて計算される. つまり,実際の解析には学習データのうちサポートベクトルと 呼ばれる事例のみしか用いられない.

サポートベクトルマシン法は 分類の数が2個のデータを扱うもので,通常これに ペアワイズ手法を組み合わせて用いることで, 分類の数が3個以上のデータを扱うことになる[13].

ペアワイズ手法とは,N個の分類を持つデータの場合, 異なる二つの分類先のあらゆるペア(N(N-1)/2 個)を作り, 各ペアごとにどちらがよいかを2値分類器(ここでは サポートベクトルマシン法[*])で求め, 最終的にN(N-1)/2個の2値分類器の分類先の多数決により, 分類先を求める方法である.

本稿のサポートベクトルマシン法は, 上記のようにサポートベクトルマシン法とペアワイズ手法を 組み合わせることによって実現される.