For my Master's thesis (finished in 2015), I decided to investigate whether or not machine learning techniques could be used to automate classification of Alzheimer's disease in Magnetic Resonance Images (MRIs).
For my dataset, I used data from the Alzheimer's Disease Neuroimaging Initiative (ADNI), specifically the complete 3 year 1.5 tesla dataset from the ADNI1 study - all which was available when I started the project.
The complete dataset contained 2182 three-dimensional T1-weighted MRIs of patients from the following three groups:
- 200 Alzheimer’s Disease (mild)
- 400 Mild Cognitive Impairment
- 200 Normal (healthy controls)
As structural irregularities of the brain is a sensitive feature of the disease (which is observable on MR images), I speculated that machine learning models (and maybe "deep" models in particular) might be able to learn features from high-dimensional data like structural MRI.
I also used several methods of dimensional reduction (histograms, Principal Component Analysis and downscaling of the images) and variations in the formulation of the learning task via different schemes of merging diagnostic groups.
In the end, decision trees trained on a dataset that had been dimensionally reduced via Principal Component Analysis, with learning posed as a binary classification problem between Alzheimer’s disease and all other diagnostic groups yielded the best results — 85.8% correct classification, which was comparable to related work.
Sadly, I did not have time to experiment more with regard to complex architectures, costs and specialized activation functions – deep convolutional nets, for instance, would likely be suitable for this sort of problem.
All the code I produced during my work is available on GitHub.
Given what has changed since I originally worked on the project - like progress in machine learning research, the increased power of consumer grade GPUs which can be used to accelerate the learning process, and the availability of libraries like Keras - it would certainly be interesting to give the problem another crack.