EEG View Classifier

This class uses Sinusoid separation explained in this blog post.

The name of this class is ViewLatentContrastiveClassifier. You find in the file several variations to classify a view, however this class implements the methodology that is able to separate accurately the data.

Attributes:

- *model*: models.eeg_to_fmri.EEG_to_fMRI, gives the pretrained model specification to be used for fMRI synthesis;
- *degree*: int, specifies the polynomial order of the linear transformation applied. Default is 1, which accounts for normal linear transformation;
- *activation*: tf.keras.activations.Activation, specifies the activation used in the encoder part of the EEG to fMRI synthesizer model;
- *regularizer*: tf.keras.regularizers.Regularizer, specifies the regularization applied to the parameters;
- *feature_selection*: bool, specifies whether to compute a masking mechanism to the synthesized fMRI volume. This is deprecated, since after implementing sinusoidal separation along with style prior, one does not need this type of processing;
- *segmentation_mask*: bool, specifies whether the synthesized fMRI goes through a mask, in order to avoid background noise. This is deprecated, since after implementing sinusoidal separation along with style prior, one does not need this type of processing;
- *siamese_projection*: bool, specifies whether in addition to the sinusoidal contrastive separation, one also performs contrastive separation in a new dimension;
- *siamese_projection_dimension*: int, the size of the auxiliary dimension where a contrastive loss is applied;
- *variational*: bool, specifies if the transformation (to classify) is done using the [DenseVariational](https://github.com/DCalhas/eeg_to_fmri/blob/550627618b402cb80b10b020bde996d8a38bc88e/src/layers/bayesian.py#L5) layer (if True) or the [tf.keras.layers.Dense](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dense) layer (if False);
- *seed*: int, the seed used to generate random numbers;