8.1 Supervised Learning Fundamentals
Introduction
Supervised learning learns from labeled examples. Given input-output pairs \((x, y)\), the goal is to find a function \(f\) such that \(f(x) \approx y\) for new, unseen inputs. This is central to fine-tuning LLMs on specific tasks like text classification or question answering.
1. Core Concepts
Labeled Data
Training data consists of pairs: \(\mathcal{D} = \{(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\}\)
- \(x_i\): Input features (e.g., text embeddings, token sequences)
- \(y_i\): Target labels (e.g., sentiment, next token, class)
- \(n\): Number of training examples
Learning Objective
Find function \(f\) that minimizes prediction error: $$\min_{f} \frac{1}{n}\sum_{i=1}^{n} L(y_i, f(x_i))$$ where \(L\) is a loss function measuring error between prediction \(f(x_i)\) and true label \(y_i\).
Interactive: Supervised vs Unsupervised Learning
Compare learning with and without labels:
{{learningType === 'supervised' ? 'Supervised' : 'Unsupervised'}}: {{learningInfo}}
2. Classification vs Regression
Classification
Predict discrete labels from finite set: $$y \in \{1, 2, \ldots, K\}$$ Examples: Sentiment analysis (positive/negative), spam detection, language identification.
Regression
Predict continuous values: $$y \in \mathbb{R}$$ Examples: Predicting text quality scores, estimating reading time, forecasting engagement.
Interactive: Classification vs Regression
Visualize the difference between task types:
Output Type
{{taskMetrics.outputType}}
Loss Function
{{taskMetrics.lossFunction}}
Example Use
{{taskMetrics.example}}
3. Training, Validation, and Test Sets
Data Split Strategy
Divide data into three disjoint sets:
- Training Set (60-80%): Used to fit model parameters
- Validation Set (10-20%): Tune hyperparameters, early stopping
- Test Set (10-20%): Final performance evaluation (never touch during development)
Why Split?
Prevents overfitting - model memorizing training data instead of learning generalizable patterns: $$\text{Test Error} = \text{Bias}^2 + \text{Variance} + \text{Noise}$$
Interactive: Data Split Visualization
Adjust split ratios and see distribution:
Train: {{splitCounts.train}} samples | Val: {{splitCounts.val}} samples | Test: {{splitCounts.test}} samples
Rule: Test set should reflect real-world distribution and remain untouched until final evaluation
4. Overfitting and Underfitting
Overfitting (High Variance)
Model fits training data too well, captures noise: $$\text{Training Error} \ll \text{Validation Error}$$ Signs: High accuracy on train, low on validation. Model too complex.
Underfitting (High Bias)
Model too simple, cannot capture underlying patterns: $$\text{Training Error} \approx \text{Validation Error} \gg 0$$ Signs: Poor performance on both sets. Model too simple.
Good Fit
Balanced complexity: $$\text{Training Error} \approx \text{Validation Error} \approx \text{Irreducible Error}$$
Interactive: Overfitting vs Underfitting
Adjust model complexity to see fitting behavior:
Current State: {{fittingState}}
Recommendation: {{fittingRecommendation}}
5. Learning Curves
Plot training and validation error vs training set size or epochs:
- Training curve decreases: Model learning patterns
- Validation curve converges: Generalization improving
- Gap between curves: Indicates overfitting
Interactive: Learning Curves
See how performance changes with training data size:
Diagnosis: {{curveDiagnosis}}
Solution: {{curveSolution}}
Advanced Learning Curve Analysis
Adjust data size, model complexity, epochs, and noise to see their effect on training vs validation error.
Final Train Error
{{lc.final.train | number:3}}
At max samples
Final Val Error
{{lc.final.val | number:3}}
Generalization performance
Gen Gap
{{lc.final.gap | number:3}}
{{lc.gapCategory}}
Bias Est.
{{lc.bias | number:3}}
Low complexity error
Variance Est.
{{lc.variance | number:3}}
Gap-driven
Interpretation: Training error approaches irreducible noise with enough data. Large gap implies overfitting; high both errors implies underfitting.
6. Cross-Validation Preview
Instead of single train/val split, use k-fold cross-validation:
- Split data into \(k\) equal folds
- Train on \(k-1\) folds, validate on remaining fold
- Repeat \(k\) times, each fold used once for validation
- Average performance across all folds
$$\text{CV Error} = \frac{1}{k}\sum_{i=1}^{k} \text{Error}_i$$ More robust estimate of generalization error (covered in detail in Model Evaluation).
Interactive: K-Fold Cross-Validation
Visualize how cross-validation works:
Fold {{currentFold}}: Training on {{kFolds - 1}} folds, validating on 1 fold
Advantage: Every data point used for both training and validation
7. Supervised Learning for LLMs
Fine-tuning
Start with pre-trained model, adapt to specific task with labeled data: $$\theta^* = \arg\min_{\theta} \sum_{i=1}^{n} L(y_i, f_{\theta}(x_i))$$ where \(\theta\) are model parameters initialized from pre-training.
Common LLM Supervised Tasks
- Text Classification: Sentiment, topic, intent detection
- Named Entity Recognition: Extract entities (people, places, organizations)
- Question Answering: Given context and question, predict answer span
- Sequence-to-Sequence: Translation, summarization, paraphrasing
Interactive: LLM Fine-tuning Simulation
Simulate fine-tuning a pre-trained model on task-specific data:
Pre-train Loss
{{finetuneMetrics.pretrain | number:3}}
Final Loss
{{finetuneMetrics.final | number:3}}
Improvement
{{finetuneMetrics.improvement | number:1}}%
Key Takeaways
- Supervised learning requires labeled data (input-output pairs)
- Split data into train/validation/test to evaluate generalization
- Overfitting occurs when model is too complex; underfitting when too simple
- Learning curves help diagnose model performance
- Cross-validation provides robust performance estimates
- LLM fine-tuning adapts pre-trained models to specific tasks