Adaptation in Deep Learning Models: Algorithms and Applications