What is RMSprop and how does it work as an optimization algorithm in deep learning? How does RMSprop adjust learning rates during neural network training? What problem does RMSprop solve compared to traditional gradient descent methods? How does RMSprop differ from optimizers like SGD and Adam? What are the advantages and limitations of using RMSprop in deep learning models?