Overfitting, Underfitting and Regularization

(ओवरफिटिंग, अंडरफिटिंग और रेग्युलराइजेशन)


🔶 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:

TypeTrain AccuracyTest AccuracyError
UnderfittingLowLowHigh Bias
OverfittingHighLowHigh Variance
Just RightHighHighLow 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–5High → LowHigh → Low
6–20LowStarts rising → Overfitting starts

🎯 Summary:

ConceptDefinitionSolution
UnderfittingModel कम सीखता हैBigger model, more training
OverfittingModel बहुत ज़्यादा सीख लेता हैRegularization
RegularizationGeneralization सुधारने की तकनीकDropout, L2, Data Augmentation

📝 Practice Questions:

  1. Underfitting और Overfitting में क्या अंतर है?
  2. Dropout कैसे काम करता है?
  3. L2 Regularization का loss function में क्या योगदान है?
  4. Early stopping क्यों काम करता है?
  5. Data augmentation overfitting से कैसे बचाता है?