๐Ÿค– Practical aspects of building and deploying machine learning systems

Based on Andrew Ng's book Machine Learning Yearning. Created by Vinoo Nedungadan

Is your model performing poorly?

๐Ÿ“Š EVALUATE PERFORMANCE METRICS โ”œโ”€โ”€ Training Error High? โ”‚ โ”œโ”€โ”€ YES โ†’ HIGH BIAS PROBLEM โ”‚ โ”‚ โ”œโ”€โ”€ Solutions: โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ”ง Increase model complexity โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Add more layers (neural networks) โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Add more features โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Use more sophisticated architecture โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“‰ Reduce regularization โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Decrease L1/L2 penalty โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Reduce dropout rate โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Increase learning rate โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ โฐ Train longer โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ More epochs โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Until convergence โ”‚ โ”‚ โ””โ”€โ”€ โš ๏ธ Risk: May increase variance โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ NO โ†’ Check Dev/Test Error Gap โ”‚ โ”œโ”€โ”€ Dev Error >> Training Error? โ”‚ โ”‚ โ”œโ”€โ”€ YES โ†’ HIGH VARIANCE PROBLEM โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Solutions: โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“ˆ Get more training data โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Collect new samples โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Data augmentation โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Synthetic data generation โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ”ง Reduce model complexity โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Fewer layers/parameters โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Feature selection โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Simpler architecture โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“ˆ Increase regularization โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Higher L1/L2 penalty โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Increase dropout โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Early stopping โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐ŸŽฒ Ensemble methods โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Bagging โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Random forests โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Model averaging โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ โš ๏ธ Risk: May increase bias โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ NO โ†’ Check Test Performance โ”‚ โ”‚ โ”œโ”€โ”€ Test Error >> Dev Error? โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ YES โ†’ DATA MISMATCH PROBLEM โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Solutions: โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ”„ Analyze train vs dev/test distributions โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š Create train-dev set โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐ŸŽฏ Make training data more representative โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ”ง Domain adaptation techniques โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“ˆ Collect more dev-like training data โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“‹ Error Analysis Required โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ NO โ†’ SATISFACTORY PERFORMANCE โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐ŸŽ‰ Model is working well! โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Both errors acceptable but still not meeting targets? โ”‚ โ”‚ โ””โ”€โ”€ TARGETS TOO AMBITIOUS โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š Reassess human-level performance โ”‚ โ”‚ โ”œโ”€โ”€ ๐ŸŽฏ Adjust success metrics โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ” Bayes error analysis

๐Ÿ”Detailed Diagnostic Framework

1. Bias vs Variance Identification

๐Ÿงช DIAGNOSTIC TESTS โ”œโ”€โ”€ Compare Training vs Dev Error โ”‚ โ”œโ”€โ”€ Training Error: 8%, Dev Error: 10% โ†’ Acceptable variance โ”‚ โ”œโ”€โ”€ Training Error: 15%, Dev Error: 16% โ†’ High bias problem โ”‚ โ””โ”€โ”€ Training Error: 1%, Dev Error: 11% โ†’ High variance problem โ”‚ โ”œโ”€โ”€ Learning Curves Analysis โ”‚ โ”œโ”€โ”€ Training & dev error converge high โ†’ High bias โ”‚ โ”œโ”€โ”€ Large gap between training & dev โ†’ High variance โ”‚ โ””โ”€โ”€ Both decreasing with more data โ†’ Get more data โ”‚ โ””โ”€โ”€ Human-Level Performance Comparison โ”œโ”€โ”€ Model << Human performance โ†’ Focus on bias โ”œโ”€โ”€ Model โ‰ˆ Human performance โ†’ Focus on variance โ””โ”€โ”€ Model > Human performance โ†’ Check for overfitting

2. Error Analysis Methodology

๐Ÿ”Ž ERROR ANALYSIS PROCESS โ”œโ”€โ”€ Manual Error Examination โ”‚ โ”œโ”€โ”€ ๐Ÿ“‹ Categorize error types โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š Count frequency of each error type โ”‚ โ”œโ”€โ”€ ๐ŸŽฏ Focus on most common errors first โ”‚ โ””โ”€โ”€ ๐Ÿ’ก Generate improvement hypotheses โ”‚ โ”œโ”€โ”€ Ceiling Analysis โ”‚ โ”œโ”€โ”€ ๐Ÿ”ง Fix one component perfectly โ”‚ โ”œโ”€โ”€ ๐Ÿ“ˆ Measure improvement โ”‚ โ”œโ”€โ”€ ๐Ÿ”„ Repeat for each component โ”‚ โ””โ”€โ”€ ๐Ÿ“Š Prioritize based on potential gains โ”‚ โ””โ”€โ”€ Ablation Studies โ”œโ”€โ”€ โž– Remove features/components โ”œโ”€โ”€ ๐Ÿ“‰ Measure performance drop โ”œโ”€โ”€ ๐ŸŽฏ Keep most impactful components โ””โ”€โ”€ ๐Ÿ—‘๏ธ Remove less useful parts

3. Data Strategy Decisions

๐Ÿ“Š DATA MANAGEMENT โ”œโ”€โ”€ Train/Dev/Test Split Strategy โ”‚ โ”œโ”€โ”€ ๐ŸŽฏ Dev & test from same distribution โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š Size based on total data available โ”‚ โ”‚ โ”œโ”€โ”€ Small dataset: 60/20/20 โ”‚ โ”‚ โ”œโ”€โ”€ Medium dataset: 70/15/15 โ”‚ โ”‚ โ””โ”€โ”€ Large dataset: 98/1/1 โ”‚ โ””โ”€โ”€ ๐Ÿ”„ Shuffle before splitting โ”‚ โ”œโ”€โ”€ Data Mismatch Solutions โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š Create train-dev set โ”‚ โ”œโ”€โ”€ ๐Ÿ” Identify distribution differences โ”‚ โ”œโ”€โ”€ ๐ŸŽฏ Make training data more representative โ”‚ โ””โ”€โ”€ ๐Ÿ“ˆ Synthesize training data to match test โ”‚ โ””โ”€โ”€ When to Get More Data โ”œโ”€โ”€ โœ… High variance problem identified โ”œโ”€โ”€ โœ… Learning curves show benefit โ”œโ”€โ”€ โœ… Cost-effective to collect โ””โ”€โ”€ โŒ High bias problem (won't help much)

4. Model Optimization Strategies

โš™๏ธ OPTIMIZATION APPROACHES โ”œโ”€โ”€ Architecture Changes โ”‚ โ”œโ”€โ”€ ๐Ÿง  For High Bias: โ”‚ โ”‚ โ”œโ”€โ”€ Deeper networks โ”‚ โ”‚ โ”œโ”€โ”€ Wider networks โ”‚ โ”‚ โ”œโ”€โ”€ More complex models โ”‚ โ”‚ โ””โ”€โ”€ Advanced architectures โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐ŸŽฏ For High Variance: โ”‚ โ”œโ”€โ”€ Simpler models โ”‚ โ”œโ”€โ”€ Fewer parameters โ”‚ โ”œโ”€โ”€ Regularized architectures โ”‚ โ””โ”€โ”€ Ensemble methods โ”‚ โ”œโ”€โ”€ Hyperparameter Tuning โ”‚ โ”œโ”€โ”€ ๐Ÿ” Grid/Random search โ”‚ โ”œโ”€โ”€ ๐Ÿ“Š Bayesian optimization โ”‚ โ”œโ”€โ”€ ๐ŸŽฏ Focus on most impactful parameters โ”‚ โ””โ”€โ”€ ๐Ÿ“ˆ Use dev set for validation โ”‚ โ””โ”€โ”€ Advanced Techniques โ”œโ”€โ”€ ๐Ÿ”„ Transfer learning โ”œโ”€โ”€ ๐Ÿ“ˆ Multi-task learning โ”œโ”€โ”€ ๐ŸŽฏ End-to-end vs pipeline โ””โ”€โ”€ ๐Ÿง  Attention mechanisms

๐ŸŽ“Key Principles from Machine Learning Yearning

The ML Strategy Loop

1 ๐Ÿ“Š Define metrics โ†’ What success looks like
2 ๐Ÿ” Diagnose problems โ†’ Bias/variance/data mismatch
3 ๐Ÿ› ๏ธ Apply solutions โ†’ Based on diagnosis
4 ๐Ÿ“ˆ Measure improvement โ†’ Validate on dev set
5 ๐Ÿ”„ Iterate โ†’ Repeat until satisfactory

Critical Insights

๐ŸŽฏ Single Number Evaluation Metric

Essential for team alignment and decision making

๐Ÿ“Š Representative Dev/Test Sets

Should reflect real-world distribution you care about

๐Ÿ” Error Analysis First

Systematic analysis beats intuition for improvements

๐Ÿ“ˆ Human-Level Performance

Provides crucial bias/variance intuition

โšก Rapid Iteration

Quick cycles better than slow perfection

๐Ÿ“Š Satisficing vs Optimizing

For multi-objective problems, optimize one, satisfice others

Common Pitfalls to Avoid

โŒ Optimizing the wrong metric - Ensure your metric aligns with business goals
โŒ Mismatched data distributions - Train/dev/test should come from same distribution
โŒ Dev set too small - Need sufficient size to detect meaningful improvements
โŒ Changing dev/test during development - Stick to original sets for consistency
โŒ Assuming more data always helps - Only helps with high variance problems
โŒ Skipping error analysis - Always analyze errors before optimizing