Experimental Bayes Point Machine (BPM) classifier

Come here to discuss about OpenViBE in general!
Post Reply
toncho11
Posts: 124
Joined: Tue Apr 19, 2011 7:58 pm

Experimental Bayes Point Machine (BPM) classifier

Post by toncho11 »

What is it:

Here are some links about BPM:

http://research.microsoft.com/apps/pubs ... x?id=65611

http://research.microsoft.com/en-us/um/ ... ation.aspx

Implementation details:

It uses Microsoft Infer.net for Bayesian inference. Microsoft .NET 4.0 is required to be installed on your machine. Feature vectors from OpenVibe (C++) are supplied to .NET BPM implementation and the result is returned back to OpenVibe. So for a standard user it will works as the others classifiers in OpenVibe.

This is also an example of how to use other .NET implementations in OpenVibe as this is definitely not straight forward thing.

How to get it:
Go to: http://code.google.com/p/openvibe-gipsa ... /downloads

And select "gipsa-setup-BPM-1.0.exe" or higher version.

How to use it:

You can use again the same boxes for classification as before, but now you have an extra classifier in the dropdown called "Bayes Point Machine BPM".

Limitations:

The algorithm is not always happy with the input data provided. It complains for "matrix not being positive and definitive". To avoid this common problem you need to reduce the feature space to less than 20 (empirical value)

For the motor imagery scenarios in OpenVibe (with/without) CSP this is fine as the feature space is 2 or 6 respectively. The P300 is problematic because the feature space is 228. It is too big for BPM. A solution is to use only one output channel for training the xDawn and a decimation factor of 16 for the input signal. This will effectively reduce the feature space from 228 to 19, but it will also naturally reduce the performance. Alternatively one can try with PCA to reduce the feature space (I should try this)

Also this interesting implementation may crash if you use BPM in one scenario and then change to another one using BPM. Please report back. This will be fixed in the future.

Next:
It is interesting to see what is the BPM performance.

-Anton

Post Reply