Detection of Pneumonia on CXR Image Using Convolutional Neural Networks with an Emphasis on Minimizing False Negatives

CSEF · 2019 Mathematical Sciences First Award

Overview

Objectives The objective of this project was to develop an efficient algorithm to detect pneumonia looking at a Chest Radiograph X-ray image with an emphasis on minimizing False Negatives. World Health Organization states, "Pneumonia is the single largest infectious cause of death in children worldwide". It has been shown that convolutional neural networks (CNN) are good at extracting features from images. After finding the best CNN architecture, I wanted to further minimize the False Negatives without sacrificing the quality of the model because the False Negatives have a higher risk of being ignored. I did this by taking a random portion of the False Positives during training, changed the label to True and retrained the model. Then I took the best models and ensembled them for the final prediction on the unaltered test set. Methods The RSNA dataset is an annotated dataset with labels 0 (no pneumonia) and 1 (with pneumonia). The NIH is another annotated dataset with 15 different classes, one of which is pneumonia. I augmented the RSNA dataset by flipping the true labeled images horizontally, vertically, and 50% of the time both to make it balanced. To manage compute resources, each datasets' images were resized into 256 by 256. The RSNA dataset was then split into a train and a test set of 80:20%. The training dataset was further split into 80:20% as train and validation set. To find the best model architecture, I ran multiple experiments with a different number of channels and layers. The experiments started with simple architectures and slowly started graduating in the number of layers and channels. I used the ensembling technique of Max V oting to further improve the prediction result. The quality of the model is measured by the F1 metric. To minimize False Negatives, I changed the target of a portion of the False Positives to be True in the training dataset and retrained the models. Results I received an F1 score of 0.58, a precision of 0.6, recall of 0.56, and AUROC of 0.73, without an emphasis on the minimization of False Negatives. With the technique of minimizing False Negatives, I was able to increase the recall by 12% while keeping the same F1 score and the AUROC also increased by 3%. As a comparable, Stanford's model, ChexNet (2018), has an AUROC of 0.76 in the detection of pneumonia on the NIH dataset. Conclusions I constructed the best CNN architecture after systematically training various models with different numbers of layers and channels. I further improved the recall of the best trained models by a proposed technique.

Summary statement

I developed and proposed a novel technique to increase the recall in detection of pneumonia on CXR image using CNN, while maintaining the F1 score.

Help received

I designed and trained the CNN models by writing program in python using Keras framework with the help from internet search and guidance from Mr. Manish Singh (Principal Engineer @Ambarella). I learned about the disease and discussed the results with Dr. Parvathy (Bayside Medical Group, CA).

Awards (1)

Competition history

  • CSEF 2019 Mathematical Sciences · Entry J1413

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google