Neural networks are complicated, multidimensional, nonlinear array operations. How can we present them in a way that is clear, didactic and insightful? (Bonus points if it is beautiful as well!) I will present an overview of tools and techniques for visualizing whole networks and particular blocks, including my project (ASCII diagrams of Keras models) and proposing new solutions.
Artificial neural network models consist of many layers. How can we present a deep learning model architecture in a way that shows key features, while avoiding being too complex or repetitive? There is no standard for plots - neither for research nor didactic projects. It remains a challenge at the intersection of deep learning and data visualization.
Arguably the most important diagram of a neural network, AlexNet, consists of a cropped image of an otherwise wonderful diagram. I think we should aim for better, with usefulness and aestheticism in mind.
I will cover various aspects of neural network visualization:
I will show an overview of tools for visualizing whole networks and particular blocks, from very simple ones (e.g. my ASCII diagrams of sequential models in Keras) to complex (TensorBoard diagrams are verbose). Using existing visualizations (tools and manually created diagrams) I will discuss the following trade-offs:
The author created an open source Python package keras_sequential_ascii converting sequential models in Keras into ASCII diagrams. He works on a general D3.js visualization of neural network diagrams.
Slides: https://www.dropbox.com/s/a7xako61ihuh82k/20180707_network_viz_pydata_berlin.pdf?dl=0