← Back to all projects

CNNs and RNNs on Classifying EEG Signals

Course: ECE C247 - Neural Networks and Deep Learning

Evaluated the performance of multiple architectures (shallow and deep CNNs, LSTMs, GRUs, and hybrid CNN–RNN models) in classifying electroencephalography (EEG) signals.

Python, Google Colab, TensorFlow
A bright pink sheet of paper used to wrap flowers curves in front of rich blue background

About the course:

ECE C247 offers a review of machine learning concepts including: maximum likelihood, supervised classification, neural network architectures, backpropagation, regularization for training neural networks, optimization for training neural networks, convolutional neural networks, deep learning libraries in Python, recurrent neural networks, long short-term memory and gated recurrent units, variational autoencoders, and generative adversarial networks.

Abstract:

In this project we develop various neural network architectures to make predictions on electroencephalography (EEG) datasets, recordings of neuronal activity by a non-invasive scalp electrodes. The purpose of the networks is to accurately classify which of 4 different actions the subjects are performing. Neural networks are powerful predictors of classification tasks such as these because they are able to identify not only linear features of a dataset, but also spatial and temporal features. We developed both a shallow and deep Convolutional Neural Network (CNN) as well as two recurrent neural networks (RNNs): a Long Short Term Memory (LSTM) and Gated Recurrent Unit (GRU). In addition, we explored the combination of both RNNs with a CNN. Each architecture was trained and optimized over permutations of the training data. Overall, the best performance came from the bidirectional LSTM with a training and testing accuracy of 93.61% and 70.88%, respectively. Neural networks offer a high degree of flexibility to make predictions on a variety of data, making them powerful computational tools.

Full Report