One-shot learning (computer vision) explained

One-shot learning is an object categorization problem, found mostly in computer vision. Whereas most machine learning-based object categorization algorithms require training on hundreds or thousands of examples, one-shot learning aims to classify objects from one, or only a few, examples. The term few-shot learning is also used for these problems, especially when more than one example is needed.

Motivation

The ability to learn object categories from few examples, and at a rapid pace, has been demonstrated in humans. It is estimated that a child learns almost all of the 10 ~ 30 thousand object categories in the world by age six. This is due not only to the human mind's computational power, but also to its ability to synthesize and learn new object categories from existing information about different, previously learned categories. Given two examples from two object categories: one, an unknown object composed of familiar shapes, the second, an unknown, amorphous shape; it is much easier for humans to recognize the former than the latter, suggesting that humans make use of previously learned categories when learning new ones. The key motivation for solving one-shot learning is that systems, like humans, can use knowledge about object categories to classify new objects.

Background

As with most classification schemes, one-shot learning involves three main challenges:

One-shot learning differs from single object recognition and standard category recognition algorithms in its emphasis on knowledge transfer, which makes use of previously learned categories.

Theory

The Bayesian one-shot learning algorithm represents the foreground and background of images as parametrized by a mixture of constellation models. During the learning phase, the parameters of these models are learned using a conjugate density parameter posterior and Variational Bayesian Expectation–Maximization (VBEM). In this stage the previously learned object categories inform the choice of model parameters via transfer by contextual information. For object recognition on new images, the posterior obtained during the learning phase is used in a Bayesian decision framework to estimate the ratio of p(object | test, train) to p(background clutter | test, train) where p is the probability of the outcome.

Bayesian framework

Given the task of finding a particular object in a query image, the overall objective of the Bayesian one-shot learning algorithm is to compare the probability that object is present vs the probability that only background clutter is present. If the former probability is higher, the algorithm reports the object's presence, otherwise the algorithm reports its absence. To compute these probabilities, the object class must be modeled from a set of (1 ~ 5) training images containing examples.

To formalize these ideas, let

I

be the query image, which contains either an example of the foreground category

Ofg

or only background clutter of a generic background category

Obg

. Also let

It

be the set of training images used as the foreground category. The decision of whether

I

contains an object from the foreground category, or only clutter from the background category is:

R=

p(Ofg|I,It)
p(Obg|I,It)

=

p(I|It,Ofg)p(Ofg)
p(I|It,Obg)p(Obg)

,

where the class posteriors

p(Ofg|I,It)

and

p(Obg|I,It)

have been expanded by Bayes' Theorem, yielding a ratio of likelihoods and a ratio of object category priors. We decide that the image

I

contains an object from the foreground class if

R

exceeds a certain threshold

T

. We next introduce parametric models for the foreground and background categories with parameters

\theta

and

\thetabg

respectively. This foreground parametric model is learned during the learning stage from

It

, as well as prior information of learned categories. The background model we assume to be uniform across images. Omitting the constant ratio of category priors,
p(Ofg)
p(Obg)

, and parametrizing over

\theta

and

\thetabg

yields

R\propto

\int{p(I|\theta,Ofg)p(\theta|It,Ofg)
d\theta}{\int{p(I

|\thetabg,Obg)p(\thetabg|It,Obg)}d\thetabg

} = \frac, having simplified

p(I|\theta,Ofg)

and

p(I|\theta,Obg)

to

p(I|\thetafg)

and

p(I|\thetabg).

The posterior distribution of model parameters given the training images,

p(\theta|It,Ofg)

is estimated in the learning phase. In this estimation, one-shot learning differs sharply from more traditional Bayesian estimation models that approximate the integral as

\delta(\thetaML)

. Instead, it uses a variational approach using prior information from previously learned categories. However, the traditional maximum likelihood estimation of the model parameters is used for the background model and the categories learned in advance through training.

Object category model

For each query image

I

and training images

It

, a constellation model is used for representation. To obtain this model for a given image

I

, first a set of N interesting regions is detected in the image using the Kadir–Brady saliency detector. Each region selected is represented by a location in the image,

Xi

and a description of its appearance,

Ai

. Letting

X=

N
\sum
i=1

Xi,A=

N
\sum
i=1

Ai

and

Xt

and

At

the analogous representations for training images, the expression for R becomes:

R\propto

\int{p(X,A|\theta,Ofg)p(\theta|Xt,At,Ofg)
d\theta}{\int{p(X,A

|\thetabg,Obg)p(\thetabg|Xt,At,Obg)}d\thetabg

} = \frac

The likelihoods

p(X,A|\theta)

and

p(X,A|\thetabg)

are represented as mixtures of constellation models. A typical constellation model has P(3 ~ 7) parts, with N(~100) interest regions. Thus a P-dimensional vector h assigns one region of interest (out of N regions) to each model part (for P parts). Thus h denotes a hypothesis (an assignment of interest regions to model parts) for the model and a full constellation model is represented by summing over all possible hypotheses h in the hypothesis space

H

. Finally the likelihood is written

p(X,A|\theta)=

\Omega
\sum
\omega=1

\sumbf{h\inH}p(X,A,bf{h},\omega|\theta).

The different

\omega

's represent different configurations of parts, whereas the different hypotheses h represent different assignations of regions to parts, given a part model

\omega

. The assumption that the shape of the model (as represented by

X

, the collection of part locations) and appearance are independent allows one to consider the likelihood expression

p(X,A,bf{h},\omega|\theta)

as two separate likelihoods of appearance and shape.

Appearance

The appearance of each feature is represented by a point in appearance space (discussed below in implementation). "Each part

p

in the constellation model has a Gaussian density within this space with mean and precision parameters
A
\theta
p,\omega

={

A
\mu
p,\omega

,

A
\Gamma
p,\omega

}

." From these the appearance likelihood described above is computed as a product of Gaussians over the model parts for a give hypothesis h and mixture component

\omega

.

Shape

The shape of the model for a given mixture component

\omega

and hypothesis h is represented as a joint Gaussian density of the locations of features. These features are transformed into a scale and translation-invariant space before modelling the relative location of the parts by a 2(P - 1)-dimensional Gaussian. From this, we obtain the shape likelihood, completing our representation of

p(X,A,bf{h},\omega|\theta)

. In order to reduce the number of hypotheses in the hypothesis space

H

, only those hypotheses that satisfy the ordering constraint that the x-coordinate of each part is monotonically increasing are considered. This eliminates

P!

hypotheses from

H

.

Conjugate densities

In order to compute

R

, the integral

\int{p(X,A|\theta)p(\theta|Xt,At,Ofg)}d\theta

must be evaluated, but is analytically intractable. The object category model above gives information about

p(X,A|\theta)

, so what remains is to examine

p(\theta|Xt,At,O)

, the posterior of

\theta

, and find a sufficient approximation to render the integral tractable. Previous work approximates the posterior by a

\delta

function centered at

\theta*

, collapsing the integral in question into

p(X,A|\theta*)

. This

\theta*

is normally estimated using a Maximum Likelihood (

\theta*=\thetaML

) or Maximum A Posteriori (

\theta*=\thetaMAP

) procedure. However, because in one-shot learning, few training examples are used, the distribution will not be well-peaked, as is assumed in a

\delta

function approximation. Thus instead of this traditional approximation, the Bayesian one-shot learning algorithm seeks to "find a parametric form of

p(\theta)

such that the learning of

p(\theta|Xt,At,Ofg)

is feasible". The algorithm employs a Normal-Wishart distribution as the conjugate prior of

p(\theta|Xt,At,Ofg)

, and in the learning phase, variational Bayesian methods with the same computational complexity as maximum likelihood methods are used to learn the hyperparameters of the distribution. Then, since

p(X,A|\theta)

is a product of Gaussians, as chosen in the object category model, the integral reduces to a multivariate Student's T distribution, which can be evaluated.

Implementation

Feature detection and representation

To detect features in an image so that it can be represented by a constellation model, the Kadir–Brady saliency detector is used on grey-scale images, finding salient regions of the image. These regions are then clustered, yielding a number of features (the clusters) and the shape parameter

X

, composed of the cluster centers. The Kadir–Brady detector was chosen because it produces fewer, more salient regions, as opposed to feature detectors like multiscale Harris, which produces numerous, less significant regions.

The regions are then taken from the image and rescaled to a small patch of 11 × 11 pixels, allowing each patch to be represented in 121-dimensional space. This dimensionality is reduced using principal component analysis, and

A

, the appearance parameter, is then formed from the first 10 principal components of each patch.

Learning

To obtain shape and appearance priors, three categories (spotted cats, faces, and airplanes) are learned using maximum likelihood estimation. These object category model parameters are then used to estimate the hyper-parameters of the desired priors.

Given a set of training examples, the algorithm runs the feature detector on these images, and determines model parameters from the salient regions. The hypothesis index h assigning features to parts prevents a closed-form solution of the linear model, so the posterior

p(\theta|Xt,At,Ofg)

is estimated by variational Bayesian expectation–maximization algorithm, which is run until parameter convergence after ~ 100 iterations. Learning a category in this fashion takes under a minute on a 2.8 GHz machine with a 4-part model and < 10 training images.

Experimental results

Motorbike example

To learn the motorbike category:

Xt

and through PCA,

At

.

\thetat

, 10 from each of the three learned categories: spotted cats, faces, and airplanes. This prior encodes the knowledge that "models lacking visual consistency [ie background clutter] occupy a different part of the parameter space [from] coherent models."

p(\theta|Xt,At,Ofg)

towards parts of the parameter space corresponding to coherent models. Only one mixture component is used, letting

\Omega=1

. The estimation of the posterior is shown below.

Shared densities on transforms

Another algorithm uses knowledge transfer by model parameters to learn a new object category that is similar in appearance to previously learned categories. An image is represented as either a texture and shape, or as a latent image that has been transformed, denoted by

I=T(IL)

.

A Siamese neural network works in tandem on two different input vectors to compute comparable output vectors.[1]

Congealing

In this context, congealing is "the simultaneous vectorization of each of a set of images to each other". For a set of training images of a certain category, congealing iteratively transforms each image to minimize the images' joint pixelwise entropies E, where

E=

P
\sum
p=1

H(\nu(p)),

"where

\nu(p)

is the binary random variable defined by the values of a particular pixel p across all of the images,

H()

is the discrete entropy function of that variable, and

1\leqp\leqP

is the set of pixel indices for the image."

The congealing algorithm begins with a set of images

Ii

and a corresponding transform matrix

Ui

, which at the end of the algorithm will represent the transformation of

Ii

into its latent
I
Li

. These latents
I
Li

minimize the joint pixel-wise entropies. Thus the task of the congealing algorithm is to estimate the transformations

Ui

.

Sketch of algorithm:

UI

's to the identity.

Ii

, iterate through all possible affine transformations

A

(rotation, x-translation, y-translation, x-scale, y-scale, x-shear, y-shear) and test if

AUi

decreases the joint pixelwise entropies. If so, set

Ui=AUi

.

At the end of the algorithm,

Ui(I)=

I
Li
, and

T=

-1
U
i
transforms the latent image back into the originally observed image.

Classification

To use this model for classification, it must be estimated with the maximum posterior probability given an observed image

I

. Applying Bayes' rule to

P(cj|I)

and parametrization by the transformation

T

gives a difficult integral that must be approximated, and then the best transform

T

(that which maps the test image to its latent image) must be found. Once this transformation is found, the test image can be transformed into its latent, and a nearest neighbor classifier based on Hausdorff distance between images can classify the latent (and thus the test image) as belonging to a particular class

cj

.

To find

T

, the test image I is inserted into the training ensemble for the congealing process. Since the test image is drawn from one of the categories

cj

, congealing provides a corresponding

Ttest=

-1
U
test
that maps I to its latent. The latent can then be classified.

Single-example classification

Given a set of transformations

Bi

obtained from congealing many images of a certain category, the classifier can be extended to the case where only one training

It

example of a new category

c

is allowed. Applying all the transformations

Bi

sequentially to

It

creates an artificial training set for

c

. This artificial data set can be made larger by borrowing transformations from many already known categories. Once this data set is obtained,

I

, a test instance of

c

, can be classified as in the normal classification procedure. The key assumption is that categories are similar enough that the transforms from one can be applied to another.

See also

References

Notes and References

  1. live. https://ghostarchive.org/varchive/youtube/20211210/4S-XDefSjTM. 2021-12-10. Few-Shot Learning (2/3): Siamese Networks . YouTube.