Adam and when it hides problems on the How to Train Models track. Adam keeps running averages of gradients and squared gradients so different parameters can take different step sizes. It can look stable while generalizing worse than SGD on some vision tasks.
This lesson assumes you already worked through Stochastic gradient descent.
The idea in practice
Compare Adam and SGD on the same split if the validation gap is unexplained. Do not tune both plus the model in one run.
A concrete check
goal = {
'track': 'How to Train Models',
'lesson': 'Adam and when it hides problems',
}
checks = [
'input available at decision time',
'score matches the real decision',
'failure case written down',
]
print(goal['lesson'])
for item in checks:
print('-', item)
Run the sketch locally if you have Python. The printout is a reminder of the checks, not a trained model. Replace the strings with the real inputs from your own example before you treat it as a design.
What usually goes wrong
Assuming Adam means you can ignore learning rate. When this happens, stop adding parameters or tools. Fix the check, the data, or the permission, then run the same example again.
What to write down
- The input you are allowed to use at decision time.
- The output and the score or pass rule.
- One failure you will test on purpose.
- What you will not claim the system can do.
Practice
Name one hyperparameter of Adam besides the learning rate.
Self-check
- Say Adam and when it hides problems in one sentence that mentions an input and an output.
- Name the failure mode in this lesson and the check that would catch it.
Done when: you can explain this lesson without the page open, and you have a written failure case.