What Is a Learning Rate and How to Tune It
SkillVeris Team
AI Research Team

The learning rate is a hyperparameter that controls how large a step gradient descent takes when updating a model's weights.
In this guide, you'll learn:
- Too high and training diverges or oscillates; too low and it crawls or gets stuck.
- It is widely considered the single most important hyperparameter to tune in deep learning.
- Learning rate schedules lower the rate over time to converge smoothly.
- Adaptive optimizers like Adam adjust the effective rate per parameter but still need a base rate.
1What Is a Learning Rate?
The learning rate is a setting that determines how big a step a model takes each time it updates its weights during training. In the gradient descent update, new weight = old weight − learning_rate × gradient, the learning rate is the multiplier that scales the step. A large value means bold jumps; a small value means cautious nudges.
It is a hyperparameter, meaning you choose it before training rather than learning it from data. Getting it right is often the difference between a model that trains beautifully and one that never converges, which is why it is frequently called the most important hyperparameter in deep learning.
2Why the Learning Rate Is So Important
The learning rate governs the whole trajectory of training. Because every weight update passes through it, a poor choice can waste hours or derail training entirely.
- Too high: steps overshoot the minimum, loss oscillates or explodes to infinity, and training fails.
- Too low: steps are tiny, training takes far longer than needed, and the model may stall in a poor spot.
- Just right: loss falls quickly and steadily, then settles near the minimum.
- The ideal value depends on the model, data, and optimizer, so it must be tuned.
⚠️The Classic Symptom
If your loss shoots up to NaN or bounces around without decreasing, lower the learning rate first — it is the most common cause.
3Finding a Good Starting Value
You rarely know the perfect learning rate in advance, but there are reliable ways to find a solid starting point rather than guessing blindly.
- Start with common defaults: around 0.001 for Adam, or 0.1 for plain SGD, then adjust.
- Run a learning rate range test: train briefly while increasing the rate and plot loss against it.
- Pick a rate slightly below where the loss starts rising sharply in that plot.
- Change the rate by factors of ten (0.001, 0.01, 0.1) when searching — small tweaks rarely matter.
The Range Test
In a learning rate range test, you start from a very small rate and increase it exponentially over a few hundred steps, watching the loss. The loss typically falls, flattens, then explodes. A good learning rate sits in the steepest downhill portion, comfortably before the explosion point.
4Learning Rate Schedules
A fixed learning rate is often not optimal for the whole run. Early on you want large steps to make fast progress; later you want small steps to settle precisely into the minimum. Learning rate schedules adjust the rate as training proceeds.
Common schedules include step decay, which cuts the rate by a factor every set number of epochs, and cosine annealing, which smoothly decreases it following a cosine curve. A warmup phase, where the rate starts small and rises for the first few epochs, is also popular for large models because it stabilizes early training before the schedule begins its decay.
- Step decay: multiply the rate by a factor (e.g. 0.1) every N epochs.
- Cosine annealing: smoothly decay the rate along a cosine curve.
- Warmup: ramp the rate up gradually at the start before decaying.
- Reduce-on-plateau: cut the rate when validation loss stops improving.
5Adaptive Optimizers and the Learning Rate
Optimizers like Adam, RMSprop, and Adagrad adapt the effective step size for each parameter individually based on the history of its gradients. This makes them more forgiving of the base learning rate than plain SGD.
It is a common misconception that adaptive optimizers remove the need to tune the learning rate. They still take a base rate that matters — Adam with a rate of 0.001 behaves very differently from Adam at 0.1. Adaptivity narrows the range of workable values and reduces sensitivity, but choosing and sometimes scheduling the base rate remains important for best results.
💡A Reasonable Default
When in doubt, start with Adam at a learning rate of 0.001. It works acceptably for a wide range of problems and gives you a baseline to tune from.
6Common Mistakes to Avoid
Learning rate tuning trips up newcomers in predictable ways. Avoid these traps.
- Leaving the learning rate at a default without ever testing alternatives.
- Searching with tiny increments instead of factors of ten.
- Assuming adaptive optimizers make the learning rate irrelevant.
- Never using a schedule, so the rate stays too high to settle into the minimum.
- Ignoring the interaction between batch size and learning rate — larger batches often want larger rates.
7Setting the Learning Rate in Code
In practice the learning rate is passed to the optimizer, and schedules are added as separate objects. A few snippets show the common patterns.
- PyTorch: optimizer = torch.optim.Adam(model.parameters(), lr=0.001).
- PyTorch schedule: scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=50).
- PyTorch plateau: ReduceLROnPlateau(optimizer, patience=3) steps on validation loss.
- Keras: model.compile(optimizer=Adam(learning_rate=0.001), ...).
- Keras schedule: callbacks=[ReduceLROnPlateau(factor=0.1, patience=3)].
8Key Takeaways
Keep these core points in mind when setting a learning rate.
- The learning rate scales each weight-update step in gradient descent.
- Too high diverges; too low crawls or stalls — it must be tuned.
- Find a starting value with sensible defaults or a learning rate range test.
- Schedules lower the rate over time for smoother convergence.
- Adaptive optimizers help but still need a well-chosen base rate.
9Frequently Asked Questions
Q: What is a learning rate in machine learning? A: It is a hyperparameter that controls how big a step a model takes when updating its weights during training. In the update rule it multiplies the gradient, so a higher learning rate means larger jumps and a lower one means smaller, more cautious steps.
Q: What happens if the learning rate is too high or too low? A: Too high and the updates overshoot, causing the loss to oscillate or blow up so training fails. Too low and training is painfully slow and can get stuck in a poor solution. The aim is a value that lets the loss fall steadily.
Q: How do I choose a good learning rate? A: Start from common defaults such as 0.001 for Adam, then refine using a learning rate range test that increases the rate while watching the loss. Search in factors of ten and pick a value in the steep downhill region before the loss starts rising.
Q: Do adaptive optimizers like Adam still need a learning rate? A: Yes. Adam adapts the step size per parameter, which makes it less sensitive, but it still uses a base learning rate that noticeably affects training. You should still choose it thoughtfully and often schedule it for the best results.
Related Reading
Get The Print Version
Download a PDF of this article for offline reading.
About the Publisher
SkillVeris Team
AI Research Team
Our AI team covers the latest in machine learning, generative AI, and emerging tech — clearly and accurately.
View all postsRelated Posts
Never miss an update
Get the latest tutorials and guides delivered to your inbox.
No spam. Unsubscribe anytime.