Underfitting
Underfitting happens when a model is too simple to capture the patterns in the data. Both training and validation performance are poor.
8 min•By Priygop Team•Updated 2026
What Underfitting Looks Like
A student who barely studied might not know enough to pass even the practice problems, let alone the real exam.
Underfitting in AI:
- Training accuracy: low (the model has not learned the training data)
- Validation accuracy: also low
- The gap between training and validation is small, but both are bad
Signals of underfitting:
- Loss is still high after many epochs
- Training accuracy plateaus at a low value
- The model makes obviously wrong predictions even on training examples
Diagram
Loading diagram…
Deep Learning ⊂ Machine Learning ⊂ Artificial Intelligence
How to Fix Underfitting
- Use a more complex model: add more layers or more neurons per layer
- Train for more epochs: the model may not have had enough time to learn
- Lower the learning rate slightly: helps the model find better solutions
- Reduce regularization: if dropout or weight decay is too strong, it prevents learning
- Use better features: if using tabular data, engineer more informative features
Overfitting vs Underfitting Summary
Overfitting vs Underfitting Summary
# Visual comparison of underfitting vs good fit vs overfitting
scenarios = {
"Underfitting": {
"description": "Model too simple, hasn't learned patterns",
"train_accuracy": "60%",
"val_accuracy": "58%",
"gap": "Small",
"fix": "More complexity, more epochs",
},
"Good Fit": {
"description": "Model generalizes well to new data",
"train_accuracy": "92%",
"val_accuracy": "90%",
"gap": "Small",
"fix": "None needed",
},
"Overfitting": {
"description": "Model memorized training data",
"train_accuracy": "99%",
"val_accuracy": "75%",
"gap": "Large (24%)",
"fix": "More data, dropout, early stopping",
},
}
for scenario, info in scenarios.items():
print(f"--- {scenario} ---")
for key, value in info.items():
print(f" {key}: {value}")
print()Key Takeaways
- Underfitting happens when a model is too simple to capture the patterns in the data.
- Use a more complex model: add more layers or more neurons per layer
- Train for more epochs: the model may not have had enough time to learn
- Lower the learning rate slightly: helps the model find better solutions