Machine learning · Michigan Data Science Team · Team project
Alzheimer’s MRI Classifier
Alzheimer’s causes more than half of all dementia cases, and it progresses slowly: first short-term memory, then language, faces, and eventually basic bodily functions. That slow start is also the silver lining, because the earlier it’s caught, the earlier it can be treated. Our team built deep learning models that read a brain MRI and sort it into one of four stages, and highlight the regions that drove each prediction.
- Role
- Team member on a Michigan Data Science Team (MDST) project; each of us worked through every stage, from models to Grad-CAM to ensembling
- Task
- 4 classes: no, very mild, mild, and moderate impairment
- Models
- Custom CNN, VGG-16, ResNet-50, and an ensemble
- Best result
- 91% accuracy, 0.93 F1 (weighted ensemble)
Why accuracy matters here
If a computer can flag Alzheimer’s as soon as it starts, treatment can start sooner too. But every mistake has a cost: a false diagnosis is frightening, and missing a real case is worse. So we tracked precision, recall, and F1 alongside accuracy, not just one number.
The data
We used an axial MRI dataset from Kaggle with 2,560 training scans in each of the four classes. The smaller classes were filled out with synthetic MRIs that score close to the real scans on standard image-quality measures (mean SSIM of 0.97, FID of 0.13).
Three architectures
We worked in stages: at each step, every one of us built our own version independently, then we came together to compare results and combine the strongest. Here’s the best from each approach. The custom CNN was trained from scratch while we tested different depths and kernel sizes. VGG-16 is a deeper, straightforward stack of 13 convolutional and 3 fully connected layers, and we fine-tuned it for our scans. ResNet-50 goes three times deeper. Its residual “skip” connections carry each block’s input forward, which keeps gradients from vanishing or exploding as the network grows. That depth can pick up subtler differences, but it also makes overfitting more likely.
| Model | Accuracy | Precision | Recall | F1 |
|---|
| Custom CNN | 0.904 | 0.933 | 0.929 | 0.929 |
|---|
| VGG-16 | 0.90 | 0.92 | 0.91 | 0.92 |
|---|
| ResNet-50 | 0.82 | 0.87 | 0.75 | 0.80 |
|---|
| Weighted ensemble | 0.91 | 0.93 | 0.92 | 0.93 |
|---|
The confusion matrices show where each model went wrong. Both did well on clear cases, but ResNet-50 mixed up “very mild” and “no impairment” much more often (98 scans versus VGG-16’s 39), and those early stages are exactly where catching the disease matters most.
VGG-16
ResNet-50
Seeing what the model sees
A diagnosis tool is only useful if doctors can trust it, so we used Grad-CAM to look inside the models. It traces each prediction back through the convolutional layers and lights up the parts of the scan that mattered most: red is the strongest signal, blue the weakest.
No impairment
Very mild impairment
Moderate impairment
Combining the models
One model can overfit to noise in its training data, so we tried combining them: a plain average of their predictions, a weighted average, and a majority vote. Weighting VGG-16 at 0.6 and ResNet-50 at 0.4 worked best and beat both models on their own, reaching 91% accuracy and an F1 of 0.93.
Final ensemble
Every method, every metric