Local Deep Kernel Learning
for Efficient Non-linear SVM Prediction
読み人: 得居 誠也 @beam2d
(Preferred Infrastructure)
2013-07-09
ICML 13読み会
Cijo Jose*, Prasoon Goyal*, Parv Aggrwal*, Manik Varma**
* Indian Institute of Technology Dehli
** Microsoft Research India
目的: 予測がそこそこ速い非線形分類器
線形分類器 欲しい! カーネルSVM
分類速度 速い そこそこ速い 遅い
低次元で
複雑な分類
不可能
そこそこ
できる
可能
(カーネルによる)
• 線形分類器より速く!という話ではない
• anytimeとかではない
既存手法
局所的な分類器: 既存研究あり
• Locally Linear SVM [Ladicky+, ICML 11]
• 複数の線形分類器を, 場所ごとに異なる重み付けで
足し合わせる
• 重み付けはLocal Coordinate Codingなど
(unsupervised)
非線形SVMの分類を速くする話は他にもいろいろ
• サポートベクトルを少なくする
• ランダム埋め込み
Locally Linear SVM [Ladicky+, ICML 11]
min
W 2
kW k2
+
1
|S|
X
k2S
⇠k
s.t. 8k 2 S, ⇠k max(0, 1 yk (xk)t
W xk).
LDKLのアプローチ
局所線形な分類器+二分木による空間分割
• 局所線形な分類器, 目的関数はSVMと同じ
• 各点でどの分類器を使うかは二分木を探索して得る
• 空間分割も一緒に学習する
(LLSVMでは事前に教師なし学習だった)
• 主空間で最適化
• 最適化はSGD
• 特徴写像が高速なカーネルを一緒に学習するSVM,
と思うこともできる
LDKLのカーネル=
局所カーネル 大域カーネル
K(xi, xj) = KL(xi, xj)KG(xi, xj)
Local Kernel
(特徴写像 )L
Global Kernel
(特徴写像 )G
•  の特徴写像は    (クロネッカー積)
• 今回は      とする(線形カーネル)
- 特徴写像を陽に書ければなんでも良い
- e.g.)
K L ⌦ G
G(x) = x
G(x) = x ⌦ x
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x sign(✓t
1x)
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x sign(✓t
1x)
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x sign(✓t
2x)
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x sign(✓t
2x)
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x sign(✓t
5x)
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x sign(✓t
5x)
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
分岐パラメータとの内積の正負で左右に下っていく
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x
Local Kernel: 木構造の特徴写像
+ -
+ +
+ + + +
- -
- - - -
通過した頂点ごとに重みの係数  を計算する
✓1
✓2 ✓3
✓4 ✓5 ✓6 ✓7
入力x ✓0
1
✓0
2 ✓0
3
✓0
4 ✓0
5 ✓0
6 ✓0
7
✓0
8 ✓0
9 ✓0
10 ✓0
11 ✓0
12 ✓0
13 ✓0
14 ✓0
15
Lk
(x) = tanh( ✓0t
k x)Ik(x)
ノードkを通過したら1
Lk
LDKLの目的関数
パラメータの種類ごとに正則化するSVM
min
W,⇥,⇥0
P(W, ⇥, ⇥0
) =
W
2
Tr(Wt
W) +
⇥
2
Tr(⇥t
⇥) +
⇥0
2
Tr(⇥0t
⇥0
)
+
NX
i=1
L(yi, t
L(xi)Wt
xi).
• 損失関数はヒンジ損失
• 大文字のパラメータは, 小文字のパラメータを並べ
た行列
L(y, ˆy) = max(0, 1 yˆy)
LDKLの最適化は主空間でのSGD
rwk
P(xi) = W wk iyi Lk
(xi)xi,
r✓k
P(xi) = ⇥✓k iyi
X
l
tanh( ✓0t
l xi)r✓k
Il(xi)wt
l xi
r✓0
k
P(xi) = ⇥0 ✓0
k iyi (1 tanh2
( ✓0t
k xi))Ik(xi)wt
kxixi.
•  =   のマージンが1未満なら1, そうでなければ0
• 下線部以外は簡単に計算できる
i xi
勾配は次式
空間分割の最適化
sign関数を緩和
Ik(x) =
Y
l2Ancestors(k)
1
2
(sign(✓t
l x) + ( 1)C(l)
).
  を陽に書き下すとIk 右に行くか左に行くか (1 or 0)
signの部分を最適化できるように緩和:
Ik(x) =
Y
l2Ancestors(k)
1
2
(tanh(sI✓t
l x) + ( 1)C(l)
).
r✓l
Ik(x) = Ik(x)(tanh(sI✓t
l x) + ( 1)C(l)
) l2Ancestors(k)sIx.
緩和パラメータを変えながら最適化
(焼きなまし?)
Ik(x) =
Y
l2Ancestors(k)
1
2
(tanh(sI✓t
l x) + ( 1)C(l)
).
•  が小さいと  の値は 0 から遠くなる
- 木の全体を探索しないといけない
- 最初はそうしないと空間分割を最適化できない
• そこで最適化が進むにつれ  を大きくしていく
sI Ik
sI
実験
実験
実験
まとめ
• LDKLは, 分類がそこそこ速い非線形分類器
• LLSVMに似ている
- LDKLでは重み付けも一緒に最適化
- 二分木を使ったモデルで, ノード数Mに対して分類速
度がO(log M)
• 主空間のSGD, オンラインで動く
• 精度はRBF-SVMよりちょい悪い
• 同じ分類速度では他の高速化手法よりも高い精度
その他
• Fastfood [Le+, ICML 13]とは(当然)比較なし
- 乱択埋め込みによるカーネル近似の新しいやつ
- アダマール行列をうまく使う

ICML2013読み会 Local Deep Kernel Learning for Efficient Non-linear SVM Prediction