MMDs 12.3

SVM
Support Vector Machine (SVM)
• 境界面と境界面に最も近いデータ点との距離を最大化
するように境界面を決定 
定式化 (未完)
• とりあえず,線形分離可能な場合について
• 訓練集合 (yi = 1 or +1)

が与えられたとき,全てのiについて

を満たすγのうち,最大のもとを求めたい

• の両辺を定数倍するとγはいくらでも大
きくなる
以下のように境界面をとるようにする
定式化
• 適当な定数を掛ける事でサポートベクタに対し

(or -1 ) となるようにできる
• 図より,        , より
-1=
定式化
• 結局, γの最大化 → の最小化問題に
• 解くべき問題は,

最小化

制約条件 (i = 1,2,…,n)

問題例
制約条件:
最小化: ||w|| =
p
u2 + v2
もう少し一般の場合
• 先ほどは完全に線形分離できる場合だった
• 一般にはノイズ等の影響でだいたい分離できても100%
はできないことがある
• また,100%分離できたとして,過学習してしまう可能
性がある
完全に線形分離できない例
完全に線形分離できない場合
• 分類に失敗したものに対してペナルティを与える
• 以下の関数を制約条件のもとで最小化する







(C: 定数)

第一項: ||w|| についての関数

第二項: 損失関数 (ヒンジ関数)
    を最小化する理由
• ||w|| の単調関数ならなんでもいい
• ||w|| はルートを含むので計算しにくい
• だと2次式で表現され,さらに

=
ヒンジ関数
SVMの解法
• よく使われるのは,2次計画問題(QP, 目的関数が2次関
数で制約条件が1次関数の最適か問題) として解く方法

アルゴリズムとしてはSMOなど
• 大規模なデータに対しては,最急降下法 (Gradient
Descent) が有効 (逐次計算なのでメモリに優しい)
最急降下法によるSVMの解法
• f の勾配は,





• 以下の式で w を更新していく (η: 定数)
最急降下法によるSVM解法の例
最急降下法によるSVM解法の例
• C = 0.1, η = 0.2
確率的最急降下法 (Stochastic Gradient Descent)
• 実際に大規模データを扱うときは,全ての訓練集合を
扱うと量が膨大なので,一部を抽出して学習すること
がある

=> SGD

MMDs 12.3 SVM