SGD+α: 確率的勾配降下法の現在と未来

Hidekazu Oiwa
Hidekazu OiwaResearcher at Recruit Holdings, Co. Ltd.
2013/10/17 PFIセミナー

SGD+α
確率的勾配降下法の現在と未来

東京大学 情報理工学系研究科
大岩 秀和 / @kisa12012
自己紹介

•大岩 秀和 (a.k.a. @kisa12012)
•所属: 東大 数理情報 D2 (中川研)
•研究: 機械学習・言語処理
•オンライン学習/確率的最適化/スパース正
則化 etc...

•前回のセミナー: 能動学習入門
•PFI: インターン(10) -> アルバイト(-12)
2
今日の話 1/2

•みんな大好き(?)確率的勾配降下法
•Stochastic Gradient Descent (SGD)
•オンライン学習の文脈では,Online
Gradient Decent (OGD)と呼ばれる

•SGDは便利だけど,使いにくい所も
•ステップ幅の設定方法とか
3
今日の話 2/2

•SGDに+αで出来る拡張の話をします
•最近提案されたトッピング(研究)を紹介
•ステップ幅設定/自動正規化など

Plain SGD

Topping
4
1. Plain SGD

5
基本問題設定
min f (w)

f (w)

• (損失)最小化問題 w
⇤
• 値が最小となる w を求めたい
f (·) は凸関数
•
⇤
w
関数がN個の関数に分解可能
•
• 必須ではないですが,今回はこの条件で進めます
f (w) =

N
X

n=1
6

ft (w)
Plain SGD
x1

x2

................................ xN

wt
7
Plain SGD
x1

x2

................................ xN

wt
データを一つランダムにピックアップ
8
Plain SGD
x1

x2

................................ xN

wt+1 = wt

⌘t @f2 (wt )

選んだデータに対応する勾配でパラメータ更新
9
Plain SGD
x1

x2

................................ xN

max(0, 1
(wT x

二乗損失 (回帰)

ヒンジ損失 (分類)

y)2

wt+1 = wt

⌘t @f2 (wt )

用いる損失関数は様々
10

ywT x)
Plain SGD

•関数を一つだけサンプルして,勾配を計算
wt+1 = wt

⌘t rfnt (wt )

•

関数 fnt (·) の値が一番小さくなる
方向へパラメータを更新

⌘t でステップの幅を調整
•

•微分不可能な場合も劣勾配で
11
Pros and Cons of Plain SGD
wt+1 = wt

⌘t rfnt (wt )

•長所
•大規模データに有効 (Bottou+ 11)
• そこそこの 解がすぐに欲しい時
•実装・デバッグ・実験サイクルを回すのが楽
•ノウハウ集 (Bottou 12)
•最適解への収束証明あり
12
Pros and Cons of Plain SGD

•短所
•ステップ幅で収束性が大きく変化
•Overshoot, Undershoot
•前処理しないと性能が劇的に悪化
•正規化, TF-IDF
•厳密な最適解が欲しい場合は遅い

損失
(対数)
SGD
GD
時間

13
SGD+α

•時代はビッグデータ
•複雑な最適化よりシンプルで軽いSGD
•しかし,SGDも不便な部分が多い
•SGD+α
•+αで,より効果的なアルゴリズムへ
•+αで,欠点の少ないアルゴリズムへ
•「それ,実はSGD+αで出来るよ?」
14
今日紹介する+α

• Importance-aware Update
• ステップ幅の問題を緩和
• Normalized Online Learning
• 前処理なし,オンラインで特徴量の正規化
• Linear Convergence SGD
• バッチデータに対して,線形収束するSGD
• 他にもAdaGrad/省メモリ化等を紹介したかったで
(Karampatziakis+ 11)

(Stéphane+ 13)

(Le Roux+ 12)

すが,略
15
2. Importance-aware Update

16
Overshoot / Undershoot
SGDはステップ幅設定に失敗すると,劇的に悪化

ステップ幅が大きすぎる

小さすぎる
17
ステップ幅設定は大変
w = (inf, inf, . . . )

•Overshootで生じるnan/infの嵐
•Cross-Validationで最適ステップ幅探しの旅
•つらい
•ステップ幅選択に悩みたくない
•Importance-aware Update
•キーワード: Invariance, Safety
18
Invariance

•ステップ幅設定をh倍 -> データ1個分の更新h回
へ再設定

→

19
Importance-aware Update
(Karampatziakis+ 11)

•Invarianceを満たすステップ幅の再設定法
•線形予測器では変化するのはステップ幅のみ
•主な損失関数のステップ幅は,閉じた式で計
算可能

•L2正則化等が入っても大丈夫
•Regret Boundの証明あり
20
Importance-aware step width
ステップ幅の再設定式
Table 1: Importance Weight Aware Updates for Various Loss Functions
Loss
`(p, y)
Update s(h)
⇣
⌘
>
p y
Squared
(y p)2
1 e h⌘x x
x> x
Logistic

log(1 + e

Exponential

e
y log

Logarithmic
Hellinger
Hinge
⌧ -Quantile

p

( p

y
p

p

2

y)

yp

)

yp

+ (1
p

( 1

y) log
p

1 y
1 p

p

1

max(0, 1 yp)
if y > p
⌧ (y p)
if y  p (1 ⌧ )(p y)

(6) gives a di↵erential equation whose solution is the
result of a continuous gradient descent process.
As a sanity check we rederive (5) using (6). For
@`
squared loss @p = p y and we get a linear ODE:

y)2

> x+yp+eyp

) h⌘x> x eyp
for y 2 { 1, 1}
yx> x
py log(h⌘x> x+epy )
for y 2 { 1, 1}
x> xy
p
p 1+ (p 1)2 +2h⌘x> x
if y = 0
p x> x
p
p2 +2h⌘x> x
if y = 1
x> x
>
1
p 1+ 4 (12h⌘x x+8(1 p)3/2 )2/3
if y = 0
x> x
1
p 4 (12h⌘x> x+8p3/2 )2/3
if y = 1
x> x
1 yp
y min h⌘, x> x for y 2 { 1, 1}
if y > p
⌧ min(h⌘, ⌧yx>p )
x
p y
if y  p (1 ⌧ ) min(h⌘, (1 ⌧ )x> x )

W (eh⌘x

solution to (6) has no simple form for all y 2 [0, 1] but
for y 2 {0, 1} we get the expressions in table 1.
3.1.1

(Karampatziakis+ 11) より

Hinge Loss and Quantile Loss

Two other commonly used loss function are the hinge
loss
21 and the ⌧ -quantile loss where ⌧ 2 [0, 1] is a parameter function. These are di↵erentiable everywhere
Safety

•Importance-aware Updateとなった二乗損失や
ヒンジ損失は,Safetyの性質を持つ
Safety
T
wt+1 x y
T
wt x y

0

が必ず満たされる
領域を超えない
22
No more step width war!

•SafetyによりOvershootの危険性が減る
•初期ステップ幅を大きめにとれる
•ステップ幅の精密化により,精度も改善
•賢いステップ幅選択方法は他にも提案
•(Duchi+ 10), (Schaul+ 13)...
23
3. Normalized Online Learning

24
特徴量の正規化
• 各特徴量のスケールに強い影響を受ける
• スケールの上限/下限の差が大きいほど,理論的にも実
証的にも性能悪化

• バッチ学習の場合は前処理で正規化する場合がほとんど
• オンライン学習では,前処理が不可能な場合がある
• 全部のデータを前もって用意出来ない etc.
x = (1.0, 5.2, . . . )
x = (1000.0, 5.2, . . . )
25

x = (0.001, 5.2, . . . )
Normalized Online Learning
(Stéphane+ 13)

s1

s2

................................

wt = (1.0, 2.0, . . . , 5.0)

各特徴量に,最大値保存用のボックスを設置
26

sD
Normalized Online Learning
s1

s2

................................

x2 = (2.0, 1.0, . . . , 5.0)

wt = (1.0, 2.0, . . . , 5.0)

データを一つランダムにピックアップ
27

sD
Normalized Online Learning
s1

s2

................................

x2 = (2.0, 1.0, . . . , 5.0)

wt = (1.0, 2.0, . . . , 5.0)

選択したデータの各特徴量の値が
最大値を超えていないかチェック
28

sD
Normalized Online Learning
2.0

s2

................................

sD

If 2.0 > s1
x2 = (2.0, 1.0, . . . , 5.0)
1.0 ⇥ s2
1
wt = (
2 , 2.0, . . . , 5.0)
2.0

もし超えていたら,正規化せずに過去データを
処理してしまった分,重みを補正
29
Normalized Online Learning
2.0

................................

s2
wt+1 = wt

sD

⌘t g (@f2 (wt ), s1:D )

x2 = (2.0, 1.0, . . . , 5.0)

あとは,サンプルしてきたデータを使って,
正規化しながら確率的勾配法でアップデート
30
Normalized Online Learning
• オンライン処理しながら自動で正規化
• スケールを(あまり)気にせず,SGDを回せるように!
• スケールも敵対的に設定されるRegret Boundの証明付き
Algorithm 1 NG(learning rate ⌘t )

Algorithm 2 NAG(learning rate ⌘)

1. Initially wi = 0, si = 0, N = 0

1. Initially wi = 0, si = 0, Gi = 0, N

2. For each timestep t observe example (x, y)

2. For each timestep t observe example

(a) For each i, if |xi | > si

(a) For each i, if |xi | > si
wi si
i. wi
|xi |
ii. si
|xi |
P
(b) y = i wi xi
ˆ
P x2
i
(c) N
N + i s2

wi s2
i
|xi |2

i. wi
ii. si
|xi |
P
(b) y = i wi xi
ˆ
P
(c) N
N+ i
(d) For each i,
i. wi
wi

x2
i
2
si

(d) For each i,

y ,y)
t
⌘t N s1 @L(ˆi
2
@w
i

31

i. Gi

Gi +

ii. wi

wi

i

⇣

@L(ˆ,y)
y
@wi

(Stéphane+ 13)より q t
⌘

N si

⌘2

1
p

@L
Gi @
4. Linear Convergence SGD

32
線形収束するSGD

•Plain SGDの収束速度
p
一般的な条件の下で凸関数 O(1/ T )
•
O(1/T )
滑らかで強凸
•
•使用データが予め固定されている場合
SGD+αで線形収束が可能に O(c )
•
•厳密な最適解を得たい場合もSGD+α
¯
f (w)

f (w⇤ )

T

33
Stochastic Average Gradient
(Le Roux+ 12)

x1

x2

................................ xN

wt
34
Stochastic Average Gradient
x1

x2

@f1 (·) @f2 (·)

................................ xN

................................ @fN (·)

wt
各データに,勾配保存用のボックスを一つ用意
35
Stochastic Average Gradient
x1

x2

@f1 (·) @f2 (·)

................................ xN

................................ @fN (·)

wt
データを一つランダムにピックアップ
36
Stochastic Average Gradient
x1

x2

@f2 (wold )
@f1 (·)

................................ xN

昔の勾配はステル

@f2 (wt )

................................ @fN (·)

wt
選んだデータに対応する勾配情報を更新
37
Stochastic Average Gradient
x1

x2

................................ xN

新しい勾配もあれば

@f1 (·)

古い勾配もある

................................ @fN (·)

@f2 (wt )

wt+1 = wt

N
X
⌘t
@fn (·)
N n=1

全勾配情報を使って,重みベクトルを更新
38
線形収束するSGD

•
•線形予測器ならば,一データにつきスカラー
f が強凸かつ各 fn (·) が滑らかな時,線形収束

(float/double)を一つ持てば良い

•正則化項を加えたい場合
•SAGでは,L1を使ったスパース化の収束性は
未証明 (近接勾配法)

•SDCA [Shalev+ 13], MISO[Mairal 13]
39
まとめ
• SGD+α
• ステップ幅設定/自動正規化/線形収束化
• その他,特徴適応型のステップ幅調整/省メモリ化
等,SGD拡張はまだまだ終わらない

• フルスタックなSGDピザが出来る..?
• 近いうちに,ソルバーの裏側でよしなに動いてくれ
る..はず?

• そんなソルバーを募集中
40
参考文献
•

L. Bottou, O.Bousquet, The Tradeoffs of Large-Scale Learning , Optimization for
Machine Learning, 2011.

•
•

L. Bottou, Stochastic Gradient Descent Tricks , Neural Networks, 2012.
Nikos Karampatziakis, John Langford, "Online Importance Weight Aware Updates", UAI,
2011.

•

John C. Duchi, Elad Hazan, Yoram Singer, "Adaptive Subgradient Methods for Online
Learning and Stochastic Optimization", JMLR, 2011.

•

Tom Schaul, Sixin Zhang and Yann LeCun., "No more Pesky Learning Rates", ICML,
2013.

•
•

Stéphane Ross, Paul Mineiro, John Langford, "Normalized Online Learning", UAI, 2013.
Nicolas Le Roux, Mark Schmidt, Francis Bach, Stochastic Gradient Method with an
Exponential Convergence Rate for Finite Training Sets , NIPS, 2012.

•

Shai Shalev-Shwartz, Tong Zhang, Stochastic Dual Coordinate Ascent Methods for
Regularized Loss Minimization , JMLR, 2013.

•

Julien Mairal, Optimization with First-Order Surrogate Functions , ICML, 2013.
41
1 of 41

More Related Content

Similar to SGD+α: 確率的勾配降下法の現在と未来(20)

More from Hidekazu Oiwa(11)

NIPS2014読み会 NIPS参加報告NIPS2014読み会 NIPS参加報告
NIPS2014読み会 NIPS参加報告
Hidekazu Oiwa5.5K views
PoisoningAttackSVM (ICMLreading2012)PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)
Hidekazu Oiwa4.1K views
OnlineClassifiersOnlineClassifiers
OnlineClassifiers
Hidekazu Oiwa6K views
Prml9Prml9
Prml9
Hidekazu Oiwa1.1K views
IBMModel2IBMModel2
IBMModel2
Hidekazu Oiwa1.1K views
Pfi last seminarPfi last seminar
Pfi last seminar
Hidekazu Oiwa5.5K views
NLPforml5NLPforml5
NLPforml5
Hidekazu Oiwa948 views
PRML5PRML5
PRML5
Hidekazu Oiwa8.3K views
ArowArow
Arow
Hidekazu Oiwa715 views

SGD+α: 確率的勾配降下法の現在と未来