Search code examples
machine-learningcomputer-visioncluster-analysisclassificationdetection

difference between classification and detection


I'm reading the following article for my master thesis: http://graphics.cs.cmu.edu/projects/discriminativePatches/discriminativePatches.pdf In section 2.1 it said: "we turn the classification step of discriminative clustering into a detection step" what is the difference between classification and detection? Initially I think it means that with "classificator" it is going to define a classifier of more classes (then exist just a classifier for all classes with input=image patch,output= class), and with "detector" a classifier of just one class (then for every class exist one different detector with input=image patch, output= yes/no). But before that line, he say "an initial clustering of data is followed by learning a descriminative classifier FOR EACH CLUSTER (class)" then, also with classifier it means "for every class (cluster) exist a classifier". then..what it would say differentiating classifier and detection? Thanks


Solution

    1. To my understanding, the paper applied one-vs-all SVM on multi-classification. For each cluster, the linear SVM trains to make sure the patches within the cluster truly belongs to this class (1 belong, 0 not belong). Based on the training model, the re-clustering is performed. This part is classifier.

    2. The naming of detector in the paper just extended the sample from a relatively small set (discovery) to a huge set with all the possible images and patches (natural). As you can see from the sketch of Algorithm I, for each cluster, SVM training set also includes the samples from natural dataset in order to better differentiate the patches in the current cluster and those from all the other sources (other clusters and natural set). Note that although the training sample is extended, the samples for clustering won't change. The extension of training set just provides a more accurate similarity measure for further clustering.

    3. The function name *detect_top* may be a little bit confused with detector, but it is just one step in the adjustment of clustering by selecting the patches from other clusters that looks more like to belong the current cluster, according to the trained classifier from previous step. From the 2nd loop, such trained classifier includes the information from the natural data set.

    Classifier targets the clusters (D), while detector works for the whole data set (D+N).