What is learning rate decay, and why is it important in training machine learning models? How does learning rate decay adjust the learning rate during the training process? What are the different types of learning rate decay techniques? How does learning rate decay help improve model convergence and stability? In what situations should learning rate decay be applied?