Skip to content

EEG-Based Alzheimer’s Disease Recognition Using Robust-PCA and LSTM Recurrent Neural Network

License

Notifications You must be signed in to change notification settings

MAlessandrini-Univpm/rnn-eeg-ad

Repository files navigation

rnn-eeg-ad

EEG-Based Alzheimer’s Disease Recognition Using Robust-PCA and LSTM Recurrent Neural Network

This is the software used in the article:

Alessandrini, M.; Biagetti, G.; Crippa, P.; Falaschetti, L.; Luzzi, S.; Turchetti, C. "EEG-Based Alzheimer’s Disease Recognition Using Robust-PCA and LSTM Recurrent Neural Network". Sensors 2022, 22, 3696. https://doi.org/10.3390/s22103696

If you use this work, please cite the article:

@Article{s22103696,
AUTHOR = {Alessandrini, Michele and Biagetti, Giorgio and Crippa, Paolo and Falaschetti, Laura and Luzzi, Simona and Turchetti, Claudio},
TITLE = {EEG-Based Alzheimer's Disease Recognition Using Robust-PCA and LSTM Recurrent Neural Network},
JOURNAL = {Sensors},
VOLUME = {22},
YEAR = {2022},
NUMBER = {10},
ARTICLE-NUMBER = {3696},
URL = {https://www.mdpi.com/1424-8220/22/10/3696},
ISSN = {1424-8220},
ABSTRACT = {The use of electroencephalography (EEG) has recently grown as a means to diagnose neurodegenerative pathologies such as Alzheimer’s disease (AD). AD recognition can benefit from machine learning methods that, compared with traditional manual diagnosis methods, have higher reliability and improved recognition accuracy, being able to manage large amounts of data. Nevertheless, machine learning methods may exhibit lower accuracies when faced with incomplete, corrupted, or otherwise missing data, so it is important do develop robust pre-processing techniques do deal with incomplete data. The aim of this paper is to develop an automatic classification method that can still work well with EEG data affected by artifacts, as can arise during the collection with, e.g., a wireless system that can lose packets. We show that a recurrent neural network (RNN) can operate successfully even in the case of significantly corrupted data, when it is pre-filtered by the robust principal component analysis (RPCA) algorithm. RPCA was selected because of its stated ability to remove outliers from the signal. To demonstrate this idea, we first develop an RNN which operates on EEG data, properly processed through traditional PCA; then, we use corrupted data as input and process them with RPCA to filter outlier components, showing that even with data corruption causing up to 20% erasures, the RPCA was able to increase the detection accuracy by about 5% with respect to the baseline PCA.},
DOI = {10.3390/s22103696}
}

Code description

  • rnn_eeg_ad.py main Python code, used as an imported module by the following scripts when running tests
  • batch_test.py script performing single tests with different parameters
  • batch_cross_val.py performs multiple tests on ranges of parameters
  • batch_spikes.py performs tests with multiple corruption levels
  • r_pca.py Robust PCA implementation from https://github.com/dganguli/robust-pca
  • mu_golden_search.py searches optimum mu parameter for RPCA, using golden-section search
  • mspca.m MSPCA implementation (Matlab)
  • parse_log.py parses log files generated by tests, to compute mean and max values
  • eeg2 dataset directory

About

EEG-Based Alzheimer’s Disease Recognition Using Robust-PCA and LSTM Recurrent Neural Network

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages