Inspiration
Being in a community with Indians and some of us having an Indian heritage, we wanted to give back, especially in desperate times like these where COVID has overshadowed many of the existing health issues. We've known people who have suffered from brain tumors and the surgery process, and we also know neuroradiologists who have found that diagnosing brain tumors often takes too much time (in the sense that in most cases, it is simple enough to be diagnosed by something else, rather than a human who can better allocate time to diagnose more difficult cases). We may not be medically trained radiologists, but we are students who are passionate about the novel technology that is AI and want to use what we've learned to help the frontline doctors who are working hard in this pandemic from the sidelines.
What it does
Our model is a convolutional neural network designed to detect brain tumours in MRI scans. You need a trained doctor to conclusively find a brain tumour, but our model can rule out scans that definitely don’t have a tumour and flag potential tumours for evaluation by a human doctor.
How we built it
We used a combination of batch normalization and dropout to reduce overfitting, allowing us to train for over 80 epochs before noticing any overfitting. The main feature detection layers consist of convolutional layers with batch normalization where every second or third layer has a stride of (2, 2) to downsample the image. Each of these convolutional layers uses the ReLU activation function. We added a dropout of 0.2 in between the final convolutional layer and the output layer to reduce overfitting. We added this while struggling with a problem with our data, so it would be interesting to try removing this layer to see if it’s really necessary. Finally, our output layer is a single dense neuron with a sigmoid activation function. It would be interesting to experiment with using logits instead of a probability output.
Challenges we ran into
We ran into a problem with our data early on. We were using data augmentation to help our model generalize, and we forgot to normalize the test dataset to between 0 and 1. This meant that the model was trained on values of 0 to 1 but was being evaluated on pixels between 0 and 255. This led to the biggest validation loss I’ve ever seen of 2300
Accomplishments that we're proud of
Despite our different time zones, we were able to get together to work and accomplish the tasks. Utilizing different skill sets, we were also able to create a high-standard slide presentation and present with the passion that we have for the project. Additionally, after running into some issues, we were able to achieve a diagnostic accuracy of 90% in the time that we had.
What we learned
We learned a lot about how to avoid overfitting in a model and how to debug a model when something is clearly wrong. We also learned a lot about how to effectively divide tasks in a team. Instead of having everyone working on the code at the same time, we’d have some people working on the presentation and some people working on the code, that way we wouldn’t be bottlenecked by debugging and training.
What's next for BrAIn
Our next step for our program is to contact some AI experts, like Dr. Alexander Wong from UWaterloo, that we know to get feedback on our program and then further reach out to individuals who can aid us in our implementation process. Hopefully, we will soon be able to have a timeline for deploying our program and will be able to contact organizations to use this program in hospitals as a way to help existing doctors/radiologists!
Log in or sign up for Devpost to join the conversation.