CS-433 Machine learning, EPFL
This project aims to decode an electroencephalogram (EEG) recorded in subjects presented with a visual stimulus on a screen, a five-by-five pixel image made of black and gray squares. To this end, we used machine learning models. The first method involved implementing a pixel-wise approach, i.e. training a Support Vector Machine (SVM) model on each pixel for a binary classification task, thereafter grouping each model to form the whole stimulus. The second approach consisted of using a U-shaped fully convolutional neural network (UNet) to capture the spatial dependency between each recording channel (electrode).
The main classes present are:
- SMV_pixel: Support machine vector binary classifier
- SVM: tweety-five SVM_pixel class lumped
- UNet: a deep neural network based on UNet architecture
- Python >= 3.5
- numpy
- pytorch
- matplotlib
- scikit-learn
- panda
- op
- ast
- optuna
- mne <= 1.3.1
- pickle
Code set for reproducibility. Long runtime
- Access the clusters
- Set up an environment
- Git pull the code
- Download the data with scp
- Write .run files for each modules Adapt the path file for the environment
- sbatch and run Check Squeue, tail -f,
- Tune the model: tune.py Obtain hyperparam.csv
- Train the model: main.py Obtain .csv files
- Plot the results
- Test the model
- Tune the model: tune.py Obtain hyperparam.pkl
- Train the model: main.py Obtain .pkl files
- Plot the results
- Test the model
Dupont-Roc Maud, Grosjean Barbara, Ingster Abigaïl