Cancer Detection with Deep Learning

Deep Learning has been used in a variety of problems with state-of-the-art results. This time, we tried to create a deep Convolutional Neural Network (CNN) able to diagnose cancer.

The Problem

As peoples' life expectancy gets longer, cancer becomes a more serious problem. One method of diagnosing cancer is through Mass Spectrometry (MS). An MS sample consists of a list of 10 thousand numerical values. The sample coming from healthy tissue is different from a sample from a cancerous one (figures below), and an expert must be able to identify the difference.

Mass Spectometry sample of cancerous tissue.
Mass Spectometry sample of healthy tissue.

In order to automate the diagnose and potentially save lives, the diagnose process could be done by a neural network. With that in mind, we trained a CNN to perform this task.

The Deep Network

Our CNN architecture is presented in the diagram below. It is composed of three types of layers: convolution, pooling, and fully connected layers. The network takes as input an MS sample and output whether cancer is present.

The network model for the Arcene dataset is presented above.

We used the Arcene Dataset for training. Even though it provides a very small number of samples (just 100), we could achieve 85% precision with in the validation dataset. This precision could be further improved if more data were available.

For those who are interested or want to try to beat our precision results, we leave our source code in Python - Keras in the link below.
https://github.com/CyberAILab/cancer-detection-arcene