There is a surge of interest in Machine Learning. If you aren’t in some way following the tidal wave of interest in the field, you are sure to be both directly and indirectly using Machine Learning in some way: in speech recognition on your phone, products recommended to you on the internet based on your browsing or shopping history, to fraud detection on your bank account. The hype has led to some fearing the machine revolution. But for others, the hype is causing tangible improvements.

At Devoxx US, assistant professor at Stanford University Olivier Gevaert is talking about “Deep learning with tensorflow for multi-scale modeling of cancer patients“. This made international news recently, as a letter published in the journal Nature by Stanford University researchers reported that deep neural networks, developed using TensorFlow, are capable of classifying skin cancer with the same accuracy as experienced Dermatologists.

In this article, we examine some of the technology behind the news.


TensorFlow is a tool that was developed by researchers and engineers working on the Google Brain Team. It is designed to make it quick to prototype machine learning algorithms, and quickly move them from prototypes to production.

It uses data flow graphs to make computations: the nodes in the graphs represent operations. The graph edges represent the ‘tensors’, and they are communicated between them. Then ‘tensors’ are multidimensional arrays of data. So instead of making calculations on an example-by-example or feature-by-feature basis, calculations can be made on vast datasets at a time.

In 2015 TensorFlow was made open source, after being widely used by Google in it’s image recognition, Google Translate and voice apps. We will be looking at TensorFlow in other articles next week, keep reading Voxxed for more information.

How does the research work?

A convolutional neural network is a type of feed-forward artificial network. A feed-forward network is one where the data moves forwards, from the data input, to the output, for example:

feed forward

The red ‘calculations’ represent some transformation on the data coming in. The results are passed left to right along the blue lines, and accumulate at the resulting output.

The alternative is one where data output from one calculation is fed back into the network. E.g.
recurrent nn

A convolutional neural network is supposed to mimic animal visual perception. The way the connections are mapped between the calculations in the artificial network is based on research into the real neurons in the animal visual cortex, and how they are organised.


In order to “train” the network, images are fed in. The images are the “training set”: selected because we know that they are either of a cancerous skin lesion, or a non-cancerous skin lesion. This is the output. One data input might be a single pixel from an image. There will be as many data inputs as there are pixels. Each input is assigned a ‘weight’ – a value that it will be multiplied with. This is then sent into an artificial neuron. Other inputs are mapped to that neuron, with their weights, and a calculation is made on their sum. The result is output. That result is assigned a weight, and collected with other results in the next artificial neuron, where a calculation is made on their sum… and so on.

When the final result is output, it is compared with what we know the image. We can then compare what the neural network thinks it is with what we know is the real answer. The weights are then changed, and we try again, until the network gets closer and closer to predicting the right answer. This trains the network, so that theoretically the network will predict the correct answer for any picture that is input. It teaches the network what groups of pixels might correspond to a ‘type’, and what might correspond to another.

The study

The study used 129,450 clinical images, that consisted of 2032 different diseases. It was tested against 21 board-certified dermatologists, and the images that were predicted to be cancerous by the dermatologists were also tested (by taking biopsies).  The researchers developed an algorithm to partition diseases into classes. They predict that this could lead to low-cost diagnostic tools: this could be a mobile phone taking a picture of a skin lesion, and validating it.

Tomorrow’s diagnostic tools

The study notes that “Deep learning algorithms, powered by advances in computation and very large datasets, have recently been shown to exceed human performance in visual tasks such as playing Atari games, strategic board games like Go and object recognition.” This is a solid example of a deep learning algorithms matching human diagnostic powers. Whilst far, far away from replacing Dermatologists, it will surely enhance their processes.


For the full talk, see Olivier Gevaert at Devoxx US: “Deep learning with tensorflow for multi-scale modeling of cancer patients“.

Devoxx US banner

Machine Learning’s medical strides

About The Author
- Katharine is a Java developer by trade, turned Community & Content Manager for Voxxed. Helping developers learn and share knowledge. Contact me at with any news, articles or tutorials.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>