In ML, transfer learning refers to applying a trained model to a different problem.

How?

  • A CNN is arranged in layers
  • The first layers detect more general features
    • Like outlines and colors
    • Applicable to wide range of problems
  • Later layers become more specific
    • Is this an eye or a bird egg?
  • Freeze existing weights to prevent overfitting
  • Replacing final FC layers is often enough to solve a new problem w/ similar data
  • Also possible to finetune an existing model
    • Start w/ existing weights
    • Train on new data to update weights

Which approach to use

  • The factors to consider are
    • Is my new data set large?
      • Small = thousands
      • Large = 100s of thousands
      • Subjective
    • Is my new data set similar to my previous data set?
      • Similar = dogs and wolves
      • Different = dogs and flowers
  • Then consult this table

Transfer learning strategy picker