What are the key differences between Adam and SGD, and when would you use weight decay or learning rate scheduling?