This is an experiment in developing an interactive version of Terence Broad's Network Bending. This work provides a 3D visualisation of the activation maps of a neural network (in this case CNN's) and allows the user to select a single slice of an activation map or the entire stack and manipulate it using a simple visual editor. The activation map can be drawn on, rotated and scaled and the re-inserted into the network to see the effect on the output.
The web app runs on an entirely custom WebGL pipeline integrated with Tensorflow-JS. It is capabale of displaying any arbitrary CNN architecture (in theory). The activation maps are the intermediary outputs between layers of the model. The editor in the web app allows the user to manipulate a single slice of an activation map, or apply a set of transformations to an entire stack, through the use of a simple editor. The editor has tools such as a simple paint brush, and some basic transformations such as rotate and scale. The activation map is then inserted back into the model and passed through the subsequent layers and the output is shown.
The original paper by Broad et al. shows that a more expressive output through manipulation of the activation maps than of the kernels themselves and prior experiments prove this. Below is a screenshot of a similar program where the kernels can be manipulated and then inserted back into the model - the output was underwhelming.