Using Deep-Convolutional GANs to Improve SSVEP Classification Systems

Enter the realm of Brain-Computer Interfaces

Eelectro-enecpha-what?

An example of what an EEG headset could look like | Source

The SSVEP Phenomenon

The spike(s) in the graph represent the SSVEP signal | Source

Now, this idea is cool and all but what can it actually be used for?

Diagram showing how our SSVEP-based speller would work | Source

But there’s a problem…

Example of what low-quality data might look like (many bad channels and necessary noise) | Source

What if we could, somehow, get rid of this process entirely? What if we could create synthetic EEG data for our models to train on?

Breaking Down Deep-Convolutional Generative Adversarial Networks

Understanding Vanilla GANs

Visual representation of how a GAN works | Source

Introducing Deep-Convolutional GANs

Step 1: Collecting the Data

  1. Video-Stimuli Dataset: a dataset that includes 50 unique sample recordings for each of the 3 classes (objects) taken from 1 subject
  2. NAO Dataset: which has a total of 80 different samples for the 3 classes and was taken from 3 different subjects (S01, S02, S03)
Diagram of how the data is being collected | Source

Step 2: Synthetic Data Generation

The Model Architecture

  • One fully-connected layer as input for our data
  • Three 1D transpose convolutional layers
  • One 1D Convolutional layer
  • One fully-connected layer for our output

1D Convolutional Layers

Example of single channel 1D convolution | Source

Leaky ReLU Activation Function

Leaky ReLU function

Running our DCGAN

Visualizing each EEG dataset (the WGAN and VAE were other methods used in the paper) | Source

Step 3: Classification Procedure

Preprocessing the EEG Data

Comparison of Raw vs. Preprocessed EEG data | Source
Representation of the bandpass (left) and notch (right) filters | Source

Classification with the SCU-CNN

Our SCU CNN Architecture for classifying the EEG signals | Source

Now the accuracy is pretty good… but we want great

Using Pre-training to increase the accuracy

Accuracy for test classification using synthetic data for pre-training stage. The baseline contains no pre-training. | Source
Outline of the overall pipeline | Source

Conclusion

--

--

Get the Medium app