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:
- Representation: How should objects and categories be described?
- Learning: How can such descriptions be created?
- Recognition: How can a known object be filtered from enveloping clutter, irrespective of occlusion, viewpoint, and lighting?
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.
- Model parameters: Reuses model parameters, based on the similarity between old and new categories. Categories are first learned on numerous training examples, then new categories are learned using transformations of model parameters from those initial categories or selecting relevant parameters for a classifier.
- Feature sharing: Shares parts or features of objects across categories. One algorithm extracts "diagnostic information" in patches from already learned categories by maximizing the patches' mutual information, and then applies these features to the learning of a new category. A dog category, for example, may be learned in one shot from previous knowledge of horse and cow categories, because dog objects may contain similar distinguishing patches.
- Contextual information: Appeals to global knowledge of the scene in which the object appears. Such global information can be used as frequency distributions in a conditional random field framework to recognize objects. Alternatively context can consider camera height and scene geometry. Algorithms of this type have two advantages. First, they learn object categories that are relatively dissimilar; and second, they perform well in ad hoc situations where an image has not been hand-cropped and aligned.
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
be the query image, which contains either an example of the foreground category
or only background clutter of a generic background category
. Also let
be the set of training images used as the foreground category. The decision of whether
contains an object from the foreground category, or only clutter from the background category is:
R=
=
| p(I|It,Ofg)p(Ofg) |
p(I|It,Obg)p(Obg) |
,
where the class posteriors
and
have been expanded by
Bayes' Theorem, yielding a ratio of
likelihoods and a ratio of object category
priors. We decide that the image
contains an object from the foreground class if
exceeds a certain threshold
. We next introduce parametric models for the foreground and background categories with parameters
and
respectively. This foreground parametric model is learned during the learning stage from
, 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,
, and parametrizing over
and
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
and
to
and
The posterior distribution of model parameters given the training images,
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
. 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
and training images
, a
constellation model is used for representation. To obtain this model for a given image
, 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,
and a description of its appearance,
. Letting
and
and
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
and
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
. Finally the likelihood is written
p(X,A|\theta)=
\sumbf{h\inH}p(X,A,bf{h},\omega|\theta).
The different
's represent different configurations of parts, whereas the different hypotheses
h represent different assignations of regions to parts, given a part model
. The assumption that the shape of the model (as represented by
, 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
in the constellation model has a
Gaussian density within this space with mean and precision parameters
." 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
.
Shape
The shape of the model for a given mixture component
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
, only those hypotheses that satisfy the ordering constraint that the x-coordinate of each part is monotonically increasing are considered. This eliminates
hypotheses from
.
Conjugate densities
In order to compute
, 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
, so what remains is to examine
, the posterior of
, and find a sufficient approximation to render the integral tractable. Previous work approximates the posterior by a
function centered at
, collapsing the integral in question into
. This
is normally estimated using a
Maximum Likelihood (
) or
Maximum A Posteriori (
) procedure. However, because in one-shot learning, few training examples are used, the distribution will not be well-peaked, as is assumed in a
function approximation. Thus instead of this traditional approximation, the Bayesian one-shot learning algorithm seeks to "find a parametric form of
such that the learning of
is feasible". The algorithm employs a
Normal-
Wishart distribution as the
conjugate prior of
, 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
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
, 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
, 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
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:
- Six training images are selected from the motorbike category of the Caltech 4 Data Set and the Kadir–Brady detector is applied, giving
and through
PCA,
.
- Next, the prior model parameters are computed from 30 models
, 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."
- In learning, which is performed next, the prior biases the posterior
towards parts of the parameter space corresponding to coherent models. Only one mixture component is used, letting
. The estimation of the posterior is shown below.
- Finally, the figures below show the learned motorbike model with shape and appearance of parts, and the corresponding features.
- For recognition tests, the model above is applied to 50 images which contain motorbikes and 50 which do not. The image below shows an ROC curve, measuring the probability of detection over the probability of false detection, as well as some recognized examples.
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
.
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
"where
is the binary random variable defined by the values of a particular pixel p across all of the images,
is the discrete entropy function of that variable, and
is the set of pixel indices for the image."
The congealing algorithm begins with a set of images
and a corresponding transform matrix
, which at the end of the algorithm will represent the transformation of
into its latent
. These latents
minimize the joint pixel-wise entropies. Thus the task of the congealing algorithm is to estimate the transformations
.
Sketch of algorithm:
's to the identity.
- Compute the joint pixelwise entropies of the current set of images.
- For each image
, iterate through all possible affine transformations
(rotation, x-translation, y-translation, x-scale, y-scale, x-shear, y-shear) and test if
decreases the joint pixelwise entropies. If so, set
.
- Repeat previous step until convergence.
At the end of the algorithm,
, and
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
. Applying Bayes' rule to
and parametrization by the transformation
gives a difficult integral that must be approximated, and then the best transform
(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
.
To find
, 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
, congealing provides a corresponding
that maps I to its latent. The latent can then be classified.
Single-example classification
Given a set of transformations
obtained from congealing many images of a certain category, the classifier can be extended to the case where only one training
example of a new category
is allowed. Applying all the transformations
sequentially to
creates an artificial training set for
. This artificial data set can be made larger by borrowing transformations from many already known categories. Once this data set is obtained,
, a test instance of
, 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
- live. https://ghostarchive.org/varchive/youtube/20211210/4S-XDefSjTM. 2021-12-10. Few-Shot Learning (2/3): Siamese Networks . YouTube.