Mais conteúdo relacionado
Semelhante a LCCC2010:Learning on Cores, Clusters and Cloudsの解説 (20)
Mais de Preferred Networks (20)
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
- 2. LCCC2010について
• NIPS併催のワークショップ
• 毎年同じようでテーマで開催されている
– Organizer達で今年本を出すらしい [挨拶より]
• J. Langford, O. Dekel, J. Duchi, A. Agrawal, L. Cayton
• Google, MS, Yahoo!をはじめ主要な企業と
大学、研究所が3等分ぐらいずつ
– 実用化は04年頃から進み身近なところで利用
– 例:gmailの優先トレイはメールでPA+転移学習
• 理論と実践の両方が進展
- 3. 今日の発表について
• Distributed MAP Inference for Undirected
Graphical Models
• Machine Learning in the Cloud with Graph
Lab
• MapReduce/Bigtable for Distributed
Optimization
• 選んだ基準
– 実用的
– 単に並列化しただけじゃないものを選んだ
- 4. 背景
• 解析対象データの急激な増加
– アルゴリズムは最低でも線形の計算量が必要
だがそれでも不十分.潰しても捨てても無理
– 世界で作成されたデータ量は
2009年 8億テラバイト(前年比62%増)
2020年 35億テラバイトと予想 [Digital Universe 2010]
– 例: ニューヨーク株式市場 毎日1TB
Facebook 毎日20TBの圧縮データ
• 分散/並列化しないと、そもそもデータの読み
込み/書き込みすら無理
– HDDは現在100MB/s
- 5. 素朴な疑問
並列分散化の機械学習は面白いの?
Q. たくさんマシンを用意できたなら、データを適当
に分けて、それぞれのマシンで処理して結果を合
わせるだけじゃないの?
A. 部分的にYES, 残りはNO
– 各マシン間の情報のやりとりが制限された環境で学
習の収束保障は?収束速度は?
– 単純なアプローチはうまく行かない.が、ちょっと
だけ工夫するとうまくいく
– 分散並列システムを一から作るのはすごく大変
MapReduceなどの分散並列を実現するフレームワー
ク上で実現可能な機械学習を考える
- 6. 分散並列環境下の問題
• 通信コストは非常に大きい
– データのマシン間移動は計算コストと同じか
それ以上に大変
– スループット、レイテンシの両方で制限
• マシン間同期をとるのはコストがかかる
– 計算時間はバラバラで一番遅いマシンに依存
– そもそも同期をとれない場合も
• それぞれが独立にタスクをこなしつつ、
いかに全体の最適化を達成するか
- 7. Distributed MAP Inference
for Undirected Graphical
Models
Sammer Singh
Amarnag Subramanya
Fernando Pereira
Andrew McCallum
- 8. 目標
• グラフィカルモデルの推論は一般に困難
– 近年利用されるモデルはより巨大で密に
• 共参照推定、関係抽出、同時推論など
• 文書集合をまたがるグラフ
– 100万変数の問題を数百台で解きたい
• 様々な近似推論手法が提案されている
– LP-Relaxations
– Dual Decomposition
– MCMC-Based
• これらの手法の並列化は難しい
- 10. 既存手法
MCMCによるMAP推定
1. yを適当に決める
2. yの中身を少し変更したy’を提案
3. [0,1]の乱数が
より大きいならy’を採択し、y=y’と更新
– 確率が上がるなら常に採用、下がる場合は確
率的に採用.tは温度
– p(y’)/p(y)は変数が変わったところだけ見れ
ば計算できるので高速に計算できる
- 11. 相互排他的な提案を利用した
並列化
• yからの提案 yaとybについて
yaとybの影響箇所が重ならないとする
• この時、y⇒yaとy⇒ybは並列に評価でき、
採択することができる
• グラフィカルモデルの特徴を利用し、相
互排他的な提案を作ることができる
– 汎用的な方法もできつつある
c.f. Residual Splash Belief Propagation
- 14. 実験結果 (2)
マシン台数におけるスケーラビリティ
• NY Times Corpus 20年分の記事中に含
まれる100万回の人名言及の共参照解析
正解データが無いので
精度で評価できないが・・
- 15. Machine Learning in the
Cloud with Graph Lab
Yucheng Low
Joey Gonzalez
Aapo Kyrola
Danny Bickson
Carlos Guestrin
Joe Hellerstein
David O’Hallaron
- 16. 背景
• 分散並列向けにSplash Belief Propagation
を提案 [UAI 09]
• MapReduce(MR)はバッチ処理が得意だが
反復的な処理、部分的な更新は苦手
⇒ GraphLabを提案 [UAI 10]
– MRが苦手なML向けの処理を行うフレームワーク
– データの疎な依存関係を表せる
– 部分更新、反復処理が得意
– マルチコア、分散、クラウド、GPUに対応
- 17. GraphLabの特徴
Sequential Consistency
Thm.
全ての並列更新処理については、それと同じ結
果を生成する、逐次更新処理が必ず存在
– 並列処理の正しさを証明
- 18. 実験結果
• Gibbs sampling
– 相互排他的な変数を毎に色分けし並列更新
– プロセッサ数にほぼ線形で性能向上
– 他の様々な並列化もサポート
• LASSO
– Shooting Algorithmの並列化
• 変数とサンプルで二部グラフ作り相互排他的な変数集
合を作る
– 相互排他的な変数の更新を自動で並列化
• その他いくつかのタスクで並列化を評価
- 19. MapReduce / Bigtable for
Distributed Optimization
Keith Hall
Scott Gilpin
Gideon Mann
Slav Petrov
- 22. Parameter Mixtureが失敗する例
• f(x)=wTx のwを学習.訓練例は次の通り
y1=0 x1 =(1 1 0)
y2=1 x2 =(0 0 1)
y3=0 x3 =(0 1 1)
y4=1 x4 =(1 0 0)
• 1と2で学習して w1=(-1 -1 0)
• 3と4で学習して w2=(0 -1 -1)
• w’=w1+w2は全ての訓練例をy=0に分類
• 全例を正しく分けるのは w =(1 -2 1)
⇒全訓練例を正しく分類するwがあっても、
それをPMは必ずしも求めることはできない
- 23. 方法2
Distributed Gradient
• 勾配の計算部分を並列に行う
• 求まった勾配を利用して更新は一台で行
う
• 長所
– 勾配の計算に時間がかかる場合に高速化可能
• 短所
– 毎回パラメータを全てのshard間でやりとり
しないといけない.
– 収束は遅く,バッチ学習と同じ
- 24. 方法3
Asynchronous Update
• 全shardで共通のパラメータθを利用
• 各ワーカーは、現在のθを取得し、分割さ
れたデータでθを更新
• 欠点:θにlockをとらないため、古いθを
元に更新を計算してしまう可能性.実は
それでも収束保障はできるが遅い
- 25. 方法4
Iterative Parameter Mixture
• Parameter Mixtureを少しだけ改造
1. データを分割しshardに配る
2. shard毎に最適化
3. 全部のθの平均をとる
4. θを再度各shardに配り1から繰り返す
これは収束証明ができ、実際に高性能
– 重要:各epoch毎にパラメーターを通信するのみ.
データの通信は発生しない
• 以降ではStructured Perceptronの場合を議論
- 29. データ
データをK個に分割に分割
θ(0) = 0
θ(0) θ(0) θ(0) θ(0)
それぞれで独立に学習
θ1 θ2 θ3 θ4
θ(1)=(θ1+θ2+θ3+θ4)/4
パラメータを集めて、平均をとり
θ(1) θ(1) θ(1) θ(1) 再度分配する(データはそのまま)
θ(1)を初期値に再度学習
θ1 θ2 θ3 θ4 これを収束するまで繰り返す
- 30. Iterative Paramter Mixture +
Structured Perceptron
• 訓練例の直径がRであり、マージンγで分
離可能の時、IPM+SPによる学習アルゴリ
ズムの合計の更新回数は高々(R/γ)2
[R. McDonald NAACL 10]
– 一台で動かした場合と全く同じなので
K台で分割したらK倍の高速化が可能
– データの移動を全くしなくても全部のデータ
を正しく分類可能な学習ができる!
- 31. 略証 (1/3)
• wi,n : i番目のshardのn週目の学習結果
• w([i,n]-k): wi,nのk回の更新前
• ki,n : shard i でのn epoch目の更新回数
• wi,nを下から抑える
- 36. 彼らの結論
• 非同期更新は現在のデータセンター環境
では非常に厳しい
– 遅い、収束しない
– ネットワークが混み合う
• Iterative Parameter Mixtureが良い
– 実装もすごく簡単
– Perceptron以外にも
Passive Aggressiveなどでも証明可能
- 37. 結論
• 機械学習の分散並列化の理論/実践が揃い
つつある
– オンライン学習のRegret最小化解析の適用
– 分散最適化の理論
– MapReduceで可能なものがまだ中心
• 現状、線形識別器の分散並列化は
Iterative Parameter Mixtureが最強
– ほぼ線形の高速化が可能で収束する
– Iteration毎にパラメータを混ぜるだけ
- 38. コメント
• やり残し
– 個別の手法についての収束証明はあるが、一般の
分散最適化問題も証明できるか
– 最適な混ぜ具合を決められるか
Active Learningとの関係?
• パラメータを圧縮した最適化は伸びシロあり
– センサネットワークやCompressed Sensing の
話がそのまま使えそう
• 数台程度ならMapReduce使わずとも
実現できそう
- 39. 質問に対する回答
• 問:Shard間でデータがものすごく偏って
いる場合でもIterative Parameter
Mixtureは収束する?例えば片方が全部正
例、もう片方が全部負例でも?
• 答:必ず収束する
+1 (1, 1, 0) 一周目 w=(1,1,0) w=(0,0,0)
+1 (1, 0, 0) 平均をとって w=(1/2, 1/2, 0)
-1 (0, 1, 1) 二週目 w=(1/2, 1/2, 0), w=(1/2, -1/2, -1)
-1 (0, 0, 1) 平均をとって w=(1/2, 0, -1/2) 終了