parallel stochastic gradient discent #nipsreading
DESCRIPTION
Parallel Stochastic Gradient Discent #nipsreadingTRANSCRIPT
#nipsreading
@nokuno
Parallelized Stochastic Gradient Descent
Martin A. Zinkevich. et al.
アルゴリズムは超シンプル
解析部分はサッパリ分からず時間が足りないので省略
実験結果は至って普通
MapReduceによるSGDの並列化を提案
概要 2
マルチコア環境での並列SGD
MapReduce環境でのバッチ学習の並列化
提案法はMapReduce環境での並列SGD
教師あり学習の並列化にはいくつかの分類がある
既存手法 3
前提知識:MapReduce 4
mapmap map map
Shuffle and Sort: aggregate values by keys
reduce reduce reduce
k1 k2 k3 k4 k5 k6v1 v2 v3 v4 v5 v6
ba 1 2 c c3 6 a c5 2 b c7 8
a 1 5 b 2 7 c 2 3 6 8
r1 s1 r2 s2 r3 s3
オンラインで勾配を使って重み更新
SGD:擬似コード 5
jc
tw
:データjに対するコスト関数
:時刻tの重み
:学習率
各コンピュータでSGDした結果の重みを平均する
ParallelSGD:擬似コード 6
このアルゴリズムでは全コンピュータが全データを持つ必要がある!
k: コンピュータ数
MapReduce向きにデータも処理も分散させる
SimuParallelSGD: 擬似コード 7
Map
Red
uce
非公開のEメールシステムのデータセットを使用
ラベルは2値ラベル
テストセット:681,015個
訓練セット:2,508,220個
特徴量: 785,751,531次元(非常にスパース)
ハッシュで2^18 次元に圧縮
ノーマライズ済み
たぶんYahoo! Mailのスパム判定セットで実験
実験データ 8
データとマシンを増やせばスケールする
実験結果(訓練誤差) 9
テストセットでも効果は同様と確認できた
実験結果(テストセット) 10
正則化項を小さくすると、Single Pathより並能が良い(?)
実験結果(訓練誤差) 11
訓練誤差で結果を論じられても・・・
アルゴリズムは超シンプル
ちゃんとスケールするよ
MapReduceによるSGDの並列化を提案
まとめ 12
ご清聴ありがとうございました
13
Presentation by