Chapter 10. Neural learning about edges and corners: intro to convolutional neural networks

 

In this chapter

  • Reusing weights in multiple places
  • The convolutional layer

“The pooling operation used in convolutional neural networks is a big mistake, and the fact that it works so well is a disaster.”

Geoffrey Hinton, from “Ask Me Anything” on Reddit

Reusing weights in multiple places

If you need to detect the same feature in multiple places, use the same weights!

The greatest challenge in neural networks is that of overfitting, when a neural network memorizes a dataset instead of learning useful abstractions that generalize to unseen data. In other words, the neural network learns to predict based on noise in the dataset as opposed to relying on the fundamental signal (remember the analogy about a fork embedded in clay?).

Overfitting is often caused by having more parameters than necessary to learn a specific dataset. In this case, the network has so many parameters that it can memorize every fine-grained detail in the training dataset (neural network: “Ah. I see we have image number 363 again. This was the number 2.”) instead of learning high-level abstractions (neural network: “Hmm, it’s got a swooping top, a swirl at the bottom left, and a tail on the right; it must be a 2.”). When neural networks have lots of parameters but not very many training examples, overfitting is difficult to avoid.

The convolutional layer

A simple implementation in NumPy

Summary