The One-Shot similarity measure has recently been introduced in the context of face recognition where it was used to produce state-of-the-art results. Given two vectors, their One-Shot similarity score reflects the likelihood of each vector belonging in the same class as the other vector and not in a class defined by a fixed set of “negative” examples. The potential of this approach has thus far been largely unexplored. In this paper we analyze the One-Shot score and show that: (1) when using a version of LDA as the underlying classifier, this score is a Conditionally Positive Definite kernel and may be used within kernel-methods (e.g., SVM), (2) it can be efficiently computed, and (3) that it is effective as an underlying mechanism for image representation. We further demonstrate the effectiveness of the One-Shot similarity score in a number of applications including multiclass identification and descriptor generation.
MATLAB Code for the LDA Based One-Shot Similarity Measure
Below please find MATLAB code for computing the One-Shot Similarity score using LDA as an underlying classifier. Please report any bugs or problems to firstname.lastname@example.org.
Type “help oss_lda_sA_from_xsn” or “help oss_lda_score” for more information on each of these functions.
A typical usage would look something like this:
>> Score1 = oss_lda_score(x1,x2,sA);
>> Score2 = oss_lda_score(x2,x1,sA);
>> Score = (Score1 + Score2)./2;
Score is then the symmetric One-Shot Similarity of the two vectors x1 and x2.
Copyright and disclaimer
Copyright 2009, Lior Wolf, Tal Hassner, and Yaniv Taigman