๐Ÿค– Machine Learning Yearning

Decision Tree Summary - Based on Andrew Ng's Machine Learning Yearning

๐ŸŽฏStart Here: Model Performance Issues

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