LCCC2010:Learning on Cores, Clusters and Cloudsの解説

8,110 views

Published on

T-PRIMALの公開勉強会での発表資料

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,110
On SlideShare
0
From Embeds
0
Number of Embeds
5,132
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

LCCC2010:Learning on Cores, Clusters and Cloudsの解説

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

×