How does transfer learning allow developers to use knowledge from an existing machine learning model? What benefits does it offer when working with limited training data and computing resources? What factors should developers consider when selecting a pre-trained model for a new task?