next up previous contents
次へ: 実験と結果 上へ: 冗長な文の修正 戻る: 手法5:最良選択手法   目次


サポートベクターマシンとは

図: マージンの最大化

サポートベクトルマシン法は, 空間を超平面で分割することにより 2つの分類からなるデータを分類する手法である. このとき,2つの分類が正例と負例からなるものとすると, 学習データにおける正例と負例のマージン(間隔)を大きくとるほど分類器の誤りが減少するという考えから, このマージンを最大にする超平面を求めそれを用いて分類を行なう. 一般的に上記の方法の他に,「ソフトマージン」と呼ばれる 学習データにおいてマージンの内部領域に少数の事例が含まれてもよいとする手法の拡張や, 線形分離が不可能な問題に対応するために, 超平面の線形の部分を非線型にする拡張(カーネル関数の導入) がなされたものが用いられる. この拡張された方法は,以下の識別関数を用いて分類することと等価であり, その識別関数の出力値が正か負かによって 二つの分類を判別することが可能である.

$\displaystyle f({\bf x})$ $\displaystyle =$ $\displaystyle sgn \left( \sum^{l}_{i=1} \alpha_i y_i K({\bf x}_i,{\bf x}) + b \right)$ (3.1)
$\displaystyle b$ $\displaystyle =$ $\displaystyle -\frac{max_{i,y_i=-1}b_i + min_{i,y_i=1}b_i}{2}$  
$\displaystyle b_i$ $\displaystyle =$ $\displaystyle \sum^l_{j=1} \alpha_j y_j K({\bf x}_j,{\bf x}_i)$  

ただし,$ {\bf x}$ は識別したい事例の文脈(素性の集合)を, $ {\bf x}_{i}$ $ y_i(i=1,...,l, y_i\in\{1,-1\})$ は 学習データの文脈と分類先を意味し,関数 $ sgn$ は,
$\displaystyle sgn(x) \, =$ $\displaystyle 1$ $\displaystyle (x \geq 0)$ (3.2)
  $\displaystyle -1$ $\displaystyle (otherwise)$  

であり,また,各$ \alpha_i$ は式([*])と式([*])の制約のもと 式([*])の $ L(\alpha )$ を最大にする場合のものである.
$\displaystyle L({\alpha})$ $\displaystyle =$ $\displaystyle \sum^l_{i=1} \alpha_i - \frac{1}{2} \sum^l_{i,j=1} \alpha_i \alpha_j y_i y_j K({\bf x_i},{\bf x_j})$ (3.3)


$\displaystyle 0 \leq \alpha_i \leq C \, \, (i=1,...,l)$     (3.4)


$\displaystyle \sum^l_{i=1} \alpha_i y_i = 0$     (3.5)

また,関数$ K$ はカーネル関数と呼ばれ,様々なものが 用いられるが本稿では以下の多項式のものを用いる.
$\displaystyle K({\bf x},{\bf y})$   $\displaystyle = ({\bf x}\cdot{\bf y} + 1)^d$ (3.6)

$ C,d$ は実験的に設定される定数である. 本稿ではすべての実験を通して$ C$ を 1 に $ d$ を 2 に固定した. ここで, $ \alpha_i > 0$ となる $ {\bf x}_i$ は, サポートベクトルと呼ばれ,通常,式([*])の和をとっている部分は この事例のみを用いて計算される.


next up previous contents
次へ: 実験と結果 上へ: 冗長な文の修正 戻る: 手法5:最良選択手法   目次
平成26年3月16日