An Introduction to Transfer Learning in Machine Learning.

What is Transfer Learning?

Transfer learning is a machine learning method where a model developed for a task is reused as the starting point for a model on a second task.

Transfer Learning differs from traditional Machine Learning in that it is the use of pre-trained models that have been used for another task to jump start the development process on a new task or problem.

Transfer learning involves the concepts of a domain and a task. A domain DD consists of a feature space XX and a marginal probability distribution P(X)P(X) over the feature space, where X=x1,⋯,xn∈XX=x1,⋯,xn∈X. For document classification with a bag-of-words representation, XX is the space of all document representations, xixi is the ii-th term vector corresponding to some document and XX is the sample of documents used for training.[1]

Andrew Ng 2016 NIPS

The benefits of Transfer Learning are that it can speed up the time it takes to develop and train a model by reusing these pieces or modules of already developed models. This helps speed up the model training process and accelerate results.


Transfer Learning Examples:

1. Image Classification using Inception V3 as a starting point.

Inception V3 Model

Description: Transfer Learning used to speed up Image Classification using Inception V3 as a starting point for transferring modules.


2. Transfer Learning with a Warm Restart

Often many Machine Learning questions offer datasets that may be very horizontal and not conducive to applying a ML solution initially. To account for this you can train a Deep Convolutional Neural Net on ImageNet and then use a technique called a Warm Restart to refine the algorithm on the “target” dataset.

By pre-training the neural network on ImageNet you can then re-use it on your target data set as the lower layers are already trained on recognizing shapes and sizes. You can the refine the upper layers for your target data set.

3. VR Enabled Imitation Learning

The rapid development of VR environments has created an opportunity for models, agents and algorithms to train in virtual environments and then apply the learning and models from the environment to the real world. An example of that is training a self driving car in a virtual environments simulating actual cities and then using those trained algorithms to learn from its mistakes before deploying in the real world.

Unity has release v0.4 of their ML Agents Toolkit

Unity Technologies has done a fantastic job of creating virtual training tool kits where Neural Nets can be trained in virtual environments. The Unity ML-Agents Toolkit v0.4 is released and an excellent tool for using Imitation Learning and training Neural Nets.

4. Using Modules From Pre-Trained Models

Source : http://ruder.io/transfer-learning/

Models that have already been trained on large data sets can often lend parts of their code to other models. This is sometimes referred to as using modules to build a new model on a new data set. This is another method for speeding up the model building process and gaining efficiencies in your Machine Learning workflow.

5. Meta Learning. Learning to Learn.

Meta Learning is an approach where the algorithm or agent teaches itself by being exposed to a large number of tasks and tested on their ability to learn new tasks. This differs from many standard machine learning techniques, which involve training on a single task and testing on held out examples from that task. Transfer Learning is also involved in Meta Learning as the agents apply skills learned in one scenario to others.

There are a variety of Meta-Learning Models some of them include:

  1. Few Shots Meta-Learning : Create deep neural networks that can learn from minimalistic data sets.
  2. Optimizer Meta Learning : Learn how to optimize a neural network to better accomplish a task.
  3. Metric Meta-Learning : Determine a metric space in which learning is particularly efficient.
  4. Recurrent Model Meta Learning : A Meta Learning algorithm trains an RNN model.

The Future

As Machine Learning continues to adapt and accelerate Transfer Learning and Meta Learning will grow as models become more commoditized, integrated and automated. The ability to use existing frameworks and models can be extended to new challenges and questions and in many cases these agents and models will train themselves and create efficiencies not even imagined in the recent past. These developments will help accelerate the potential of Machine Learning and Artificial Intelligence moving forward and increase the movement away from code bases and programmers to deep neural networks and other frameworks that write their own code and manage their own behaviors.

Companies that are advanced in the space are already using layers of neural networks to run their business. These companies have built deep networks that in many cases are self training and as data flows in learn, adapts and improve, making decision making and operations seamless, friction-less and fluid. Some say Google for one is increasing relying on their collection of deep neural networks to run many of the tasks within their operations.

Resources:

  1. Pan, S. J., & Yang, Q. (2010). A survey on transfer learning. IEEE Transactions on Knowledge and Data Engineering, 22(10), 1345–1359.
  2. http://ruder.io/transfer-learning/