Training Kinect Mihai Budiu Microsoft Research Silicon Valley
Training Kinect Mihai Budiu Microsoft Research, Silicon Valley UCSD CNS 2012 RESEARCH REVIEW February 8, 2012
Label body parts in depth map Parallelizing the Training of the Kinect Body Parts Labeling Algorithm Mihai Budiu, Jamie Shotton, Derek G. Murray, and Mark Finocchio Big Learning: Algorithms, Systems and Tools for Learning at Scale, Sierra Nevada, Spain, December 16 -17, 2011 2
Solution: Learn from Data Training examples Machine learning Classifier 3
Big data Classifier • • • 1 M Training examples 300, 000 pixels/image 100, 000 features <220 tree nodes/tree 31 body parts 3 trees Decision forest inference Dryad. LINQ Dryad 4
Data-Parallel Computation Application SQL Language Execution Storage Parallel Databases Sawzall, Java Sawzall, Flume. Java ≈SQL Pig, Hive Map. Reduce Hadoop GFS Big. Table HDFS S 3 LINQ Dryad Cosmos Azure HPC 5
Dryad = 2 -D Piping • Unix Pipes: 1 -D grep | sed | sort | awk | perl • Dryad: 2 -D grep 1000 | sed 500 | sort 1000 | awk 500 | perl 50 6
Virtualized 2 -D Pipelines 7
Virtualized 2 -D Pipelines 8
Virtualized 2 -D Pipelines 9
Virtualized 2 -D Pipelines 10
Virtualized 2 -D Pipelines • 2 D DAG • multi-machine • virtualized 11
Fault Tolerance 12
LINQ => Dryad. LINQ Dryad 13
LINQ =. Net+ Queries Collection<T> collection; bool Is. Legal(Key); string Hash(Key); var results = from c in collection where Is. Legal(c. key) select new { Hash(c. key), c. value}; 14
Dryad. LINQ Data Model. Net objects Partition Collection 15
Dryad. LINQ = LINQ + Dryad Vertex code Collection<T> collection; bool Is. Legal(Key k); string Hash(Key); var results = from c in collection where Is. Legal(c. key) select new { Hash(c. key), c. value}; Query plan (Dryad job) Data collection C# C# results 16
Kinect Training Pipeline Upload Data Distribute Replicate Preprocessing Overlay players Inject noise Add background Train one tree level Normalization Compute histograms 20 x 17
Query plan for one tree layer Features Partial tree Images split Parallelize on: • Features • Images • Tree nodes New partial tree 18
Machine High cluster utilization Time 19
CONCLUSIONS 20
Huge Commercial Success 21
Tremendous Interest from Developers 22
Consumer Technologies Push The Envelope Price: 6000$ Price: 150$ 23
Unique Opportunity for Technology Transfer 24
I can finally explain to my son what I do for a living… 25
BACKUP SLIDES 26
Training efficiency core * hours / image 0. 15 8 core machine 1000 core cluster 0. 1 0. 05 0 10 100000 1000000 Number of training images (log scale) 27
19 14400 processes Normalize Tree 19 (failed) 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Preprocess Machine (235) Cluster usage for one tree Time (s) 18. 3 hours, 137. 2 CPU days, 107421 processes, 29. 56 TB data, average parallelism=14028
Dryad. LINQ Language Summary Where Select Group. By Order. By Aggregate Join 29
- Slides: 29