Topological Visualisation of a Convolutional Neural Network

A web based interactive 3D visualisation of the network topology of a convolutional neural network. The aim of this project was to apply some of the techniques used to data visualisation techniques used to visualise large networks and apply that to visualising the inner workings of artificial neural networks. Since there is a huge amount of connections between each layer of nodes in these networks, I chose to only visualise connections (and their subconnections) in which the value being passed along that connection was above a certain threshold. Making it easy to see which combinations of features from the input images the network most relies on to classify the images.

This project was made using three.js and an adapted version of the excellent ConvNetJs library. The algorithm for drawing the connections is a simple recursive depth first tree search, starting with the node of the strongest classification in the softmax layer and recursivly searcing for input values (the weight multiplyed by the input node value) that has a value higher than an arbitrary threshold. I had experimented with making this threshold interactive, but unfortunately it is very easy to set the threshold too low and kill your web browser. I will be posting a detailed write up of the project on medium in the near future. You can view it here.