Multiclass classification with BPMsA Bayes Point Machine (BPM) is a linear classifier that can be used for multiclass classification. Image classifier is an example application of Bayes Point Machine for binary classification.In a multiclass setting for classification, every class has an associated weight vector with a standard VectorGaussian priors. The label for a data point is defined by the argmax of its score under each class. Score is defined as the inner product between the features of the data point and the weight vector plus some added noise. The factor graph corresponding to Bayes Point machine is shown in the figure below
Infer.NET provides an example Visual Studio solution for various flavours of Bayes Point machine for use as multiclass classifiers. This solution can be found in the Samples\C#\BayesPointMachine folder. Infer.NET does not have a builtin Argmax factor, so we mimic this factor by constraining that the score corresponding to the assigned class should be pairwise greater than score under any other class. Another approach (not part of the current example) is to use a SoftMax factor (in this case, the noise terms should not be used as the SoftMax has an inbuilt smearing effect). There are some practical considerations when using the BPM example implementation:
See Infer.NET implementation descriptions for: Bayes Point machine  Bayes Point Machine Shared  Sparse Bayes Point Machine
