Transcript Document
大規模データの線形識別
Recent Advances of Large-scale Linear
Classification
Guo-Xun Yuan, Chia-Hua Ho, and Chih-Jen Lin
を中心にまとめた
データの性質
入力データの次元と入力データ数
入力データの各次元を素性とも言う
次元の高い場合はsparse(有効な素性が少ない)
次元が低い場合はdense(多数の素性が有効)
入力データの次元 小
103以下
入力データの次元 大
104以上
入力データ数 小
Mega
新規理論をとりあえず試す 正解タグ付きテキストコーパス
toy data
など
(場合によっては画像も)
入力データ数 大
Giga-Tera
計測される数値データ
(センサーデータ、市場
データ、など)
正解タグなしの生テキストコー
パス
ストリーム
時系列到着
センサーデータ
Twitter、ソーシャルメディアなど
データの性質
次元が大きい(10の4乗以上)の場合は線形識別も
非線形識別の精度に大きな差はない。
次元が低いと非線形識別のほうが精度がかなりよ
い。非線形化すなわち高次元化による特徴抽出能
力の改善のため
教師データ(タグ付けデータ)と生データ
教師データが大きければ、それを相手に学習
教師データがなければクラスタリングなど
小さな教師データと多数の生データ(実際は多い)
Semi-supervised learning, Active learning などチャレンジング
記法
yi , xi 1,1 R n , i 1,..,l
decision function: d x wT x b
l
w i 1 i xi
x xなら linear
以下では wT wT b xTi xTi 1 とし、
bは陽には書かない
線形識別 linear classificationは以下の最適化問題を含む
l
min f w r w C w; xi , yi
w
i 1
r w : 正則化項 w; xi , yi:損失
正則化項:r+損失:ξの最小化
各種の損失関数(右図)
L1 w; x, y max0,1 ywT x
ξL2
L 2 w; x, y max0,1 yw x
T
ξ(y,w,x)
2
LR w; x, y log1 exp( yw x)
T
ξL1
ξLR
ywTx
各種の正則化項
1 n 2
rL 2 w w 2 wi
2 i 1
2
n
rL1 w w 1 wi
0
i 1
学習アルゴリズム
• 以下では種々の学習アルゴリズムについて
述べる
双対化
双対問題を解くほうが良いこともある。双対化
とは以下の通り:
minimize f ( x)
P rimalproblem:
subject t o
gi x 0
i 1,..,n
Dual problem:
q inf L x, where
maximizeq
subject t o i 0
L x, f ( x) i 1 i gi x
n
i 1,..,n
双対化
1
2
w 2 gi w max 0,1 yi wT xi 0
2
1
n
2
SVM dual : infL x, inf w 2 i 1 i max 0,1 yi wT xi
2
SVM primal: f (w )
w i 1 yi i xi n
1 n
n
n
T
max i 1 j 1 i yi xi x j y j j i 1 i
2
1
min T Q 1T
subject to 0 i C
2
1
2
T
この制約は max 0,1 yi w xi i and min w 2 Ci
2
という線形分離できな い場合の定式化から出 る
(数理手法IV カーネル法 サポー トベクターマシン 参
照)
比較
Gradient Descentのような低次の手法はupdateは簡単
でメモリも少ない。収束が遅く、解は精密ではないが、
実は性能に大差ない
ニュートン法のような高次の手法は、収束は早いが、
updateのコストは高い(例えば、Hessian-1の計算とか
LBFGSとか)。また、解空間がスムーズ(2階微分可能)
でないといけない。精密な最適化には有効。
exp/logの計算はコストが高いことを忘れないように
並列化する場合はコア間、ノード間の通信のコストも大き
いことに注意
Pegasos:Shalev-Schwalz et al. ICML 2007
L2正則化+L1損失のSVM
1
min f w; B w C max0,1 y w x
2
w
2
2
T
i
iB
Bは全学習データ
Pegasosの更新は次式の劣微分による
w w f w; B
where f w; B w C yi xi
B i | i B,1 yi wT xi 0,
iB
Cl / k , lはベクトル w, xiの次元、 kは繰り返し回数
更新の後、wを半径(Cl)-1/2の球にproject
w min 1, Cl w 2 w
以上を収束するまで繰り返す。
Trust Region Newton Method(TRON):導入
データの次元:nが大きいと▽2f(w)はn×nなのでメモ
リに置くのも逆行列の計算も大変。
逆行列計算はBFGSなどによる
まずlogistic regressionについて
l
1 T
min f w w w C log 1 exp yi wT xi
w
2
i 1
l
f w w C 1 exp yi wT xi
i 1
2 f w I CX T DX
X x1T xTl
T
1
1 yi xi
Dは対角行列
Dii 1 exp yi wT xi
1
1 1 exp y w x
i
するとNewton法は以下のようになる。
w k 1 w k s k
1
T
f w k 2 f w k s k I CX T DX s k
i
[Dij]が対角行列であることの直観的説明
1
min f w w w C log1 exp y w x
2
l
T
T
w
l
i
i 1
f w w C 1 exp yi wT xi
X x1T xTl
i 1
T
2 2で具体例
1
1 yi xi 2 f w I CX T DX
Dii 1 exp yi wT xi
i
1
1 1 exp y w x
i
i
i
x
x 2 11
x12
X x1
T
exp yi wT xi yi xi yi xi
T
1 exp y w x
2
T
i
x21
x1T x11
X T
x22
x 2 x21
1
T
2 log 1 exp yi wT xi 1 exp yi wT xi
i
Dは対角行列
i
i
1
1 yi xi
xi Dii xi
T
i
x12
x22
2
2
x
D
x
x11 x12 D11 x21 x22 D22
2
T
T
11
11
21 D22
log 1 exp yi w xi xi Dii xi
2
2
x
x
D
x
x
D
x
D
x
D
i 1
i 1
12
11
22
22
11 12 11 21 22 22
x21D22 x11 x12 x11 x21 D11 0 x11 x12
x D
11 11
Dは対角行列
x12 D11 x22 D22 x21 x22 x12 x22 0 D22 x21 x22
2
2
D11 0 0 ..0 x0... 0 0 0
DX 0 ...0 x0.
0 D .0 x0...
0 0
11
xiがsparse
w k 1 w k s k
f w
f w k 2 f w k s k I CX T DX s k s k
w
k 1
w
k
k
(I+ε)-1はεが小さいと近似計算もできそう。
1次近似なら(I+ε)-1= I-ε
w
k 1
I CX
w f w
k
k
T
DX
したがって、データが高次元Sparseならlogistic regressionは
Hessianの計算を避けられて、効率よく計算できる。
Trust Region Newton Method(TRON):
C.-J Lin et.al. SIAM J. Optimization 9 (1999)
以下の問題をfの2次の展開qを用いて解く
l
min f w r w C w; xi , yi
w
rは L 2, は微分可能
i 1
1
T
f w d f w qd f w d dT 2 f w d
2
予め決めた閾値
最適化問題
step 1 min qd
d
subject to d 2
f w d f w
0 then w w d
qd
step 3 Adjust according to
step 2 if
Trust Region bound Δkの変え方
k k 1の規則
1 2 1
1 2 1 3
k 1 1 min d k , 2 k , 2 k
k 1 1 k , 3 k
k 1 k , 3 k
if
if
if
k 1 , 2
k 2
k 1
まだ最適値からは遠いので
f w d f w
qd
小 小さく
大 大きく
f w d f w
1
T
qd f w d dT 2 f w d
2
もう最適値に近いので
d
d
このアイデアは目的関数
が凸で微分可能なあたり
にポイントがある!
Coordinate Descent
C.-J. Hsieh, et.al. ICML2008
Target: L1損失- L2正則化のSVM 双対化し
て解く。下に定義
1 T
min f α α Q α eT α
α
2
subject to 0 i C i 1,..., l
D
where Qij yi y j xTi x j
Coordinate Descent
Coordinate Descentは順番に1変数づつ選び、
他の変数は固定して最適化。
1
min f D α dei f D α Qii d 2 i f D α d
d
2
f Dは fの双対
subject to 0 i d C where ei 0
,..0,1,0,...0
i 1
dを計算することによる iの更新式は下式
D
f
α
i
i min max i
,0 , C
Qii
CD10
T
Coordinate Descent つづき
(CD10)のQiiはαiの最適化の中で1回計算すれ
ばよいが
f α Qα 1 y y x x 1 は x x t 1,.., l
l
D
i
i
t 1
i t
T
i
t
t
の計算コストが Onl でうれしくない。そこ
u
T
i
t
で
l
y x
t 1
t
t
t
を保持しておけば
i f D α Qα i 1 yiuT xi 1 (CD20)
となり計算コストは
u u+ yi i i xi
以下の計算のための On でうれしい。
CD30
i (CD10)の更新前、 i (CD10)の更新後
L1損失-L2正則化のSVMの
Coordinate Descent アルゴリズム
l
αの初期化、および u yi i xi
i 1
Qii i 1,..., lの計算
while α is not optimal
For i 1,..l
(CD20)により G yiuT xi 1の計算
i i
G
,0 , C
i min max i
Qii
u u yi i i xi
Newton+ Coordinate Descent
J. H. Friedman, T. Hastie, and R. Tibshirani,
“Regularization paths for
generalized linear models via coordinate
descent,” Journal of Statistical
Software, vol. 33, no. 1, pp. 1–22, 2010.
最小化する目的関数 f は以下
L1正則化項
l
f w w 1 Lw where Lw C w; xi , yi
i 1
繰り返しごとに解くの
は2次近似した以下の問題
1 T
min qd w d 1 w 1 Lw d d Hd (NCD10)
d
2
where H 2 Lw I
T
小さなvはHをpositive保つため導入
ただし、L1正則化項(1-norm)のために全体を一度
に解けないので、coordinate descentを導入
(NCD10)を1変数化してみると以下のようになる
q d ze j qd
w d ze j w 1 Lw d ze j
T
1
wd 1
w 1 Lw d
T
1
d ze j T H d ze j
2
1
dT Hd
2
1
w j d j z w j d j G j z H jj z 2 where G Lw Hd
2
L1正則化における次元ご
との最適化の手法を利 用すると
Gj 1
if G j 1 H jj w j d j
H
jj
Gj 1
z
if G j 1 H jj w j d j
H jj
w j d j otherwise
( NCD 20)
(NCD20)の直観的説明
1 2
Hz を求める。 w d は定数なので無視。
z
2
1 2 g1 z if z w d
w d z Gz Hz
2
g 2 z if z w d
min w d z w d Gz
g1 z w d z Gz
1 2
1
Hz , g 2 z w d z Gz Hz 2
2
2
g1 z の2次関数としての最小値 が w d より大きいのは
g1 z
G 1
0 z
w d すなわち G 1 H w d
z
H
G 1
then z
otherwise z w d
H
g 2 z の2次関数としての最小値 が w d より小さいのは
g 2 z
G 1
0 z
w d すなわち G 1 H w d
z
H
G 1
then z
otherwise z w d
H
g2(z)
g1(z)
z
-(w+d)
(NCD20)を各次元に対して行うと最適化問題
(NCD10)の1回の繰り返しができる。
さて、 (NCD10)を直線探索で繰り返して近似
精度を上げる
直線探索による近似アルゴリズム
w,0 ,0 が与えられた
for k 1,2,...
( NCD10)の近似解 dを coordinate descent法( NCD 20)で得る
f w d f w w d 1 w 1 Lw d を満たす
T
ような max 1, , 2 ,... を見つける
w w d
メモリに乗り切らないビッグデータの
処理に関して
ディスクとメモリのデータ転送
学習中にディスクとメモリのデータ転送回数が増える
のはもちろん問題だが
ビッグデータを(分割するにしても)メモリに1回転送す
る時間も膨大
分散環境(地理的な場合も含む)にデータがある
場合
分散環境での学習はもっと厄介
あまり公表された成果がない。Googleがちらっとブロ
グで言った程度
オンライン学習による方法
元来が1データ毎の学習なので自然な方法
L1-正則化&L2-損失のSVMは以下の更新式
2
1
w w S w 2 C max 0,1 yi wT xi
Sは sub - gradient
2
if 1 yi wT xi 0 then w 1 w Cyi xi
理論的決め方なし
収束速度が遅い
Coordinate Descentのように双対化して解く
u u+ yi i i xi
CD30
ηを決める必要なし
収束の遅さを改善するために高次情報を使う
1
w w H w C max0,1 y w x
2
1
2
S
T
i
2
i
2
1
H 2 w 2 C max 0,1 yi wT xi 対角行列になることが 多い
2
H 1の計算が重くない
バッチ学習による方法
ディスクアクセスを減らすために一度のあるまとまり
のデータ(=ブロック)を読み込み学習
ブロックBだけではなく、メモリにcacheデータも残す
1
min f D α αT Q α eT α subject to 0 i C i 1,..., l
α
2
where Qij yi y j xTi x j を解くために
ブロック Bは全データ B1 , Bm から 1個づつ選んで最適化
条件: 0 i di C for i B and di 0 for i B 1
min f D α d f D α dTBQBBd B dTB Qα e B
d
2
l
1 T
T
T
d BQBBd B yi di u xi d Be B where u yi i xi
2
iB
i 1
QBBは Qのうち Bに関する部分行列