Few-Shot Learning

Notes taken from this video series

Sometimes, we don’t have access to a lot of labeled data, but still perform as well. Think about it, humans are pretty good at this. We don’t need thousands of training samples for a given class to predict on a new image. This is because we have learned how to learn, the key idea behind Meta Learning.

Warning

There is a gradient weight update.

The idea of few shot learning is to learn a similarity function.

  1. Learn a similarity function from large scale training set
  2. Apply similarity function for prediction
    1. Compare the query with every sample in the support set
    2. Find the sample with the highest similarity score

Dataset: Omniglot.

Intuition

Traditionally, in Supervised Learning, we train a deep model a training set, which has a huge number of training data. Then, we make a prediction on a test sample, where:

  • Test samples are never seen before
  • Test samples are from known classes (of the training set)

However, in Few-Shot Learning, we make predictions on a query sample, where:

  • Query samples are never seen before
  • Query samples are from unknown classes (of the Support Set)

We have two terminologies:

  • Support Set
  • Query

k-way n-shot Support Set

  • -way: The support set has classes
  • -shot: Every class has samples.

1-Shot Learning would mean the support set only has 1 sample per class.

Concepts

Apparently, there is also Zero-shot Learning.