Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Eric Liu ericnl2/ericnl2@illinois.edu, Joey Salazar jes9/jes9@illinois.edu, Jacob Alcumbrack jacoba5/jacoba5@illinois.edu
Model Contribution (CNN Model cross-segmented MRI for Alzheimer's)
Original paper: https://arxiv.org/abs/1911.03740
Ablations Implemented to Model:
Original Paper Ablations
1. Starting CNN blocks with small kernel sizes (k = 1) to avoid early downsampling
2. Using instance normalization over batch normalization to keep image information independent
3. Using wide architecture(larger filters, fewer layers) to greatly improve performance while barely hurting accuracy
Our Ablation Extension
1. Adding group normalization to normalize each image by groups of channels to find relationships between channels
2. Adding layer normalization to discover global relationships within each image
2. Underfitting and overfitting channel capacities just to see whether more or less capacity works better with MRI images
2. Hybridizing CNN with vision transformers to allow CNN to observe and evaluate on global relationships over just local
Models
pyhealth/models/alzheimer_cnn.py
Examples
examples/alzheimer_mri_classification_alzheimer_cnn.py - Original paper's model + our ablations
examples/research_paper_reproduction_alzheimer_cnn.py - Generic model + original paper's ablations
Tests
tests/core/test_alzheimercnn.py
Tests test each step of the CNN model process, For each of our models:
Test for stable instantiation and verify default values
Validate our forward pass output structure and shape
Validate that our y_prob totals to 1
Check the structure of loss
And make sure gradients are received by our parameters
For specific model tests:
Test that AlzheimerCNNNormVariant works for each available normalization types
17/17 passed
Data Source
https://huggingface.co/datasets/Falah/Alzheimer_MRI
As the original paper's data sources were far too large (3D MRI Images) to store and process on our hardware to produce meaningful results, we decided to implement much of their ablations on a 2D data source