SVM
- 線形分類器の一種
- カーネルトリックを使って高精度(注:SVM以外にも使える)
- ハードマージンSVMはソフトマージンSVMの特殊形
- 現実にはソフトマージンSVMを使う
ハードマージンSVM
- 線形分離可能: 分離超平面を引いてすべてのデータが分類できる
- 方針: 分離超平面を2クラスの事例の出来る限り"真ん中"に引く
- サポートベクトル(SV) ${{\bold x}}^*$: 平面から一番近い各クラスのデータ点
- マージン: SVから分離超平面までの距離
- 導出
- 分離超平面を表す式: $f({{\bold x}}) = y ( {{\bold w}}^T {{\bold x}} + b) = 0$
- 分離超平面上の全ての点${{\bold x}}$がこの式を満たす
- マージン: $\frac{ | {{\bold w}}^T {{\bold x}}^* +b | }{ | {{\bold w }} | }$
- ${{\bold w}}, b$の全要素を定数倍するといくらでもマージンを大きくできる
- $ | {{\bold w}}^T {{\bold x}}^* +b | = 1 $としても一般性は失われない
- マージンは (ア) $\frac{1}{|{{\bold w}}|}$と書き直せる
- また,どのデータサンプルも分離超平面との距離はマージン以上なので,全てのデータサンプル${{\bold d}}$について以下の式が成り立つ
- (イ) $\frac{ | {{\bold w}}^T {{\bold d}} +b | }{ | {{\bold w }} | } \geq \frac{1}{|{{\bold w}}|} \Leftrightarrow | {{\bold w}}^T {{\bold d}} +b | \geq 1$
- したがって,(イ)の制約下で「(ア)を最大化」(目的関数)するのがハードマージンSVM
- 目的関数の最大化問題は,目的関数を置き換えることで最小化問題ともみなせる
- $ \max \frac{1}{|{{\bold w}}|} \Leftrightarrow \min | {{\bold w}} |^2 $
ソフトマージンSVM
- ハードマージンSVMでは,分離不可能なデータに対して,制約(ア)を満たす解が存在しないので,分離超平面を計算できない
- 制約の代わりに,分類に失敗した場合ペナルティ$\xi$を与えて,ペナルティを目的関数に組み込む
- 目的関数は $ L({{\bold w}}) = \min_{{{\bold w}}} \left( \sum_t \xi^{(t)} \right) + C | {{\bold w}} |^2 $
- $C$は正の定数
- $\xi^{(t)}$には以下の2つの制約条件を満たす必要がある
- $ y^{(t)} {{\bold w}}^T {{\bold x}}^{(t)} \geq 1- \xi^{(t)}$
- $ \xi^{(t)} \geq 0$
- 2つの制約条件は以下と同値
- $ \xi^{(t)} = \max \left( 1- y^{(t)} {{\bold w}}^T {{\bold x}}^{(t)}, 0 \right)$
- よって目的関数は $ L({{\bold w}}) = \min_{{{\bold w}}} \left( \sum_t \max ( 1- y^{(t)} {{\bold w}}^T {{\bold x}}^{(t)}, 0 ) \right) + C | {{\bold w}} |^2 $
- 第1項が損失項で,ヒンジ損失とよばれる
- 第2項が正則化項で,これはL2正則化
学習
オンライン学習
- オンライン機械学習本のp.37を参照
- 目的関数を劣微分して劣勾配を求める
- その劣勾配を使って例えばSGDが使える
参考文献