Visualizing and Understanding CNNs 

J. Horacsek

M. Zeiler and R. Fergus

The Problem

In general, neural networks are hard to decipher.

  • What do the weights "mean"?
  • More specifically, what are the different layers of a network doing?
  • How do different architectures work? What's the difference between them?
  • How do we know that parameters are good?

Can we "look" into networks to inspect their behaviour?

The Problem

We can easily visualize the first convolutional layer. The first conv layer is often a collection of N x N (by 3) kernels. 

Higher layers are trickier, they're often made up of a collection (say 64) M x M filters. 

Convolutional Neural Networks: VGG16

Convolutional Neural Networks

The model used in the paper is different than VGG16

Visualizing Convolutional Neural Networks

What does the network see?

We can easily push data through the network and inspect the activations at each layer.

This isn't super helpful...

Visualizing Convolutional Neural Networks

Visualize filters in the first layer. This is fairly easy to do since they're all just 3 x 3 x 3 filters.

Deeper layers need something more sophisticated

Visualizing Convolutional Neural Networks

Go down to a specific layer, choose a feature map, take max activation

Visualizing Convolutional Neural Networks

Visualizing Convolutional Neural Networks

Basically, keep track of what activated a pool through the forward pass

Visualizing Convolutional Neural Networks

Pass unpooled map through ReLU

Visualizing Convolutional Neural Networks

Deconvolution using the transpose of the original filters

Experiments and Results

For a given layer, pick some random features. Find images that maximally activate that feature.

Experiments and Results

For a given layer, pick some random features. Find images that maximally activate that feature.

Experiments and Results

As a diagnostic tool, it allows you to pick out problematic filters.

Thanks!

Visualizing and Understanding CNNs

By Joshua Horacsek

Visualizing and Understanding CNNs

  • 1,297