(ओवरफिटिंग, अंडरफिटिंग और रेग्युलराइजेशन)
🔶 1. Underfitting क्या है?
📌 परिभाषा:
Underfitting तब होता है जब model training data को भी सही से नहीं सीख पाता।
🔍 संकेत:
- High training loss
- Low accuracy (train & test दोनों पर)
- Model simple है या data complex
🧠 कारण:
- Model बहुत छोटा है
- कम training epochs
- Features अच्छे से represent नहीं किए गए
🔶 2. Overfitting क्या है?
📌 परिभाषा:
Overfitting तब होता है जब model training data को बहुत अच्छे से याद कर लेता है, लेकिन test data पर fail हो जाता है।
🔍 संकेत:
- Training loss बहुत low
- Test loss बहुत high
- Accuracy train पर high, test पर low
🧠 कारण:
- Model बहुत complex है (बहुत सारे parameters)
- कम data
- ज़्यादा epochs
- Noise को भी सीख लिया model ने
📈 Summary Table:
Type | Train Accuracy | Test Accuracy | Error |
---|---|---|---|
Underfitting | Low | Low | High Bias |
Overfitting | High | Low | High Variance |
Just Right | High | High | Low Bias & Variance |
🔧 3. Regularization Techniques
🔷 Purpose:
Regularization techniques model को generalize करने में मदद करते हैं — यानी unseen (test) data पर बेहतर perform करना।
📌 Common Regularization Methods:
✅ A. L1 & L2 Regularization:
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, weight_decay=0.001) # L2
✅ B. Dropout:
- कुछ neurons को randomly deactivate कर दिया जाता है training के दौरान
- इससे model सभी features पर ज़रूरत से ज़्यादा निर्भर नहीं करता
nn.Dropout(p=0.5)
✅ C. Early Stopping:
- जैसे ही validation loss बढ़ना शुरू हो जाए — training रोक दी जाती है
- इससे overfitting रोका जाता है
✅ D. Data Augmentation:
- Image, text, या audio data को थोड़ा modify करके training set को बड़ा बनाना
- इससे model को general patterns सीखने में मदद मिलती है
✅ E. Batch Normalization:
nn.BatchNorm1d(num_features)
🔁 PyTorch Example with Dropout:
import torch.nn as nn
model = nn.Sequential(
nn.Linear(100, 50),
nn.ReLU(),
nn.Dropout(p=0.5),
nn.Linear(50, 10)
)
🧠 Diagnostic Plot:
Epochs → | 📉 Train Loss | 📈 Test Loss |
---|---|---|
1–5 | High → Low | High → Low |
6–20 | Low | Starts rising → Overfitting starts |
🎯 Summary:
Concept | Definition | Solution |
---|---|---|
Underfitting | Model कम सीखता है | Bigger model, more training |
Overfitting | Model बहुत ज़्यादा सीख लेता है | Regularization |
Regularization | Generalization सुधारने की तकनीक | Dropout, L2, Data Augmentation |
📝 Practice Questions:
- Underfitting और Overfitting में क्या अंतर है?
- Dropout कैसे काम करता है?
- L2 Regularization का loss function में क्या योगदान है?
- Early stopping क्यों काम करता है?
- Data augmentation overfitting से कैसे बचाता है?