The 2013 Zeiler and Fergus paper also explains this based on activations during training of the network resulting in feature detection across layers. Paper : https://arxiv.org/pdf/1311.2901.pdf
Visualizing and Understanding Convolutional Networks
Matthew D Zeiler, Rob Fergus
2013 · arXiv
- HN score
- 0
- Mentions
- 9
- Readers
- 9
- Months
- 8
From the abstract
Large Convolutional Network models have recently demonstrated impressive classification performance on the ImageNet benchmark. However there is no clear understanding of why they perform so well, or how they might be improved. In this paper we address both issues. We introduce a novel visualization technique that gives insight into the function of intermediate feature layers and the operation of the classifier. We also perform an ablation study to discover the performance contribution from different model layers. This enables us to find model architectures that outperform Krizhevsky \etal on the ImageNet classification benchmark. We show our ImageNet model generalizes well to other datasets: when the softmax classifier is retrained, it convincingly beats the current state-of-the-art results on Caltech-101 and Caltech-256 datasets.
Metadata: arXiv. Abstracts retain their original authors’ rights.
In the conversation
Original HN comments, with labels from simple text rules. A label describes the whole comment and may miss context or irony. Read the discussion to make up your own mind. About the labels
9 selected excerpts · 9 total mentions
Some architectures are relatively well understood. Eg in CNNs, the first layers detect low level features like edges, gradients, etc. The next layer then combines these features to more complex structures like corners or circles. Next layer will combine these features to even higher level features and so on. [1] Typically, you can take a pre-trained model and retrain it on your new dataset by only changing the weights of the last layer(s). Some loss functions even measures the difference between the high-level features of two images, typically extracted from a pre-trained CNN (Perceptual Loss). [1]Matt Zeiler did an amazing work on these findings 10 years ago (https://arxiv.org/abs/1311.2901).
There’s no helping the incurious, but there are indeed reams of explorations unto weights and their explanations. One of my personal favourites is Zeiler and Fergus https://arxiv.org/abs/1311.2901 Tom Zahavy’s “Greying the black box” on deep RL comes to mind too https://arxiv.org/abs/1602.02658 OpenAI has their Microscope tool for investigating individual neurons https://openai.com/research/microscope; more recently OpenAI shared research and tooling leveraging a powerful language model to explain a smaller model’s neurons. https://openai.com/research/language-models-can-explain-neur... For a true toy box exploration playground.tensorflow.org is worth a play These may or may not satisfy your curiosities — your perfect tool may not exist…yet. I would argue that the sampling of extant work above are indicative that it and more are possible.
There's a pretty cool paper that visualises the different layers in a ConvNet trained on ImageNet: https://arxiv.org/pdf/1311.2901.pdf - page 4 has the layer imagery.
https://arxiv.org/abs/1311.2901 Check out figure 2. The network learns composition from fundamental shapes and gradients to compositional ones. It's kinda awe inspiring. Not NN specific, but some more work on explanations: https://homes.cs.washington.edu/~marcotcr/blog/lime/ Visualization of attention mechanisms is pretty cool for explanations: https://arxiv.org/pdf/1502.03044.pdf http://torch.ch/blog/2015/09/21/rmva.html
It's definitely possible to get insight into how a CNN would classify something like a stop sign. This paper does a good job of showing how CNNs learn a hierarchy of increasingly complex features to classify images: http://arxiv.org/abs/1311.2901
Seeing the face of a dog just means that the network has learned a good representation of dog faces. I don't think that has anything to do with the generalization ability of the network. I'm not clear on the details of this hallucination process, but this reminds me of earlier work by Zeiler & Fergus[1], where you can see the bottom layers of the network learning general low-level features and later layers learning higher level representations of the objects being classified. [1] http://arxiv.org/abs/1311.2901
A few other useful resources to play with convolutional kernels: * The linked demo really focuses only on layer 1. See Layers >=2 plotted here: http://arxiv.org/pdf/1311.2901v3.pdf * DeepViz is a nice tool: https://github.com/bruckner/deepViz * Another tool one can use to play with convolutional kernels is ShaderToy ( https://www.shadertoy.com/ ). Here's a Gaussian blur: https://www.shadertoy.com/view/XdfGDH * If you like playing with kernels in shaders, see also Brad Larson's GPUImage: ( https://github.com/BradLarson/GPUImage ) -- the demo app has a bunch of standard kernels. Just for fun, convolutional shader porn: https://www.shadertoy.com/view/4d2Xzc
You make some pretty strong attacks on the state of the art approach to computer vision. Could you please provide citations? As someone working on neural networks, although not really on computer vision, I do not believe several of the things you said are true. > > Pornographic images, for instance, are frequently identified not by the presence of particular body parts or structural features, but by the dominance of certain colors in the images > Neural networks This is definitely not what state of the art neural networks for computer vision do, although I'm sure there are many models out there that do function in that manner. We know that neural networks learn to detect…
Read the full comment
higher level features. For example, see the excellent visualizations in Matthew Zeiler and Rob Fergus' Visualizing and Understanding Convolutional Networks paper. (http://arxiv.org/pdf/1311.2901.pdf) > Neural networks are unsuccessful because they are not detecting anything. They're just making statistical correlations that happen to be right for the specific set of training data they have received. Are you saying that the correlations they learn aren't true on non-training data? If so, that is false. Any competent person in ML tests on different data than they train. Well trained neural networks generalize to new data very well. That's why we use them. > There's no robustness whatsoever. Artificial gullibility. Are you referring to the adversarial counterexamples section of Szegedy et al's Intriguing properties of neural networks paper? (http://arxiv.org/abs/1312.6199) This paper shows that one can craft noise which will fool a neural network. But it isn't noise that is found in real life. It's created by an optimization process which is basically looking for ways to fool the network. Basically, it discovers an optical illusion for the network. (From the manifold perspective, it moves us in a direction perpendicular to the manifold.)
Keep following the thread.
More in Computer visionMore from the same topics.
Language Models are Few-Shot Learners
Tom B. Brown, Benjamin Mann, Nick Ryder +28
Recent work has demonstrated substantial gains on many NLP tasks and benchmarks by pre-training on a large corpus of text followed by fine-tuning on a specific task.
Understanding deep learning requires rethinking generalization
Chiyuan Zhang, Samy Bengio, Moritz Hardt +2
Despite their massive size, successful deep artificial neural networks can exhibit a remarkably small difference between training and test performance.
End to End Learning for Self-Driving Cars
Mariusz Bojarski, Davide Del Testa, Daniel Dworakowski +10
We trained a convolutional neural network (CNN) to map raw pixels from a single front-facing camera directly to steering commands.
Categorizing Variants of Goodhart's Law
David Manheim, Scott Garrabrant
There are several distinct failure modes for overoptimization of systems on the basis of metrics.