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.
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.
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