Demystifying the "Hidden Layers" in Convolutional Neural Networks
I spend a lot more time than you'd think talking informally about machine learning and Deep Learning with friends, family and co-workers. One thing that comes up a LOT is the idea that 'things are hidden'. Generally this means that the person I'm talking with doesn't actually understand the terms they are hearing. The big one is the idea of a 'hidden layer'. This makes it sound as if there is a layer that is invisible; which is not the true state of the network. In the post below I won't go into network topology, but talk about some of the terms.
Convolutional neural networks (CNNs) have revolutionized computer vision tasks, enabling remarkable achievements in image classification, object detection, and more. As you delve into designing a CNN, you might come across the term "hidden layers" and wonder why they are called "hidden" when you have full control over their shape and function. In this blog post, we'll unravel the mystery behind these "hidden layers" and explore their role in the CNN architecture.
In a CNN, the term "hidden layers" refers to the intermediate layers situated between the input and output layers. These layers are labeled as "hidden" because they are not directly observable from the input or output of the network. However, as the designer, you have the power to shape and define their characteristics according to your requirements.
Let's explore the different layers typically found in a CNN:
First the Input Layer:
Then the so-called Hidden Layers:
... and finally the Output Layer:
A note about designing the Hidden Layers:
As the designer, you have complete control over the shape and function of the hidden layers. While the term "hidden" might initially seem perplexing, it does not imply that you are unaware of their characteristics and to a degree machinations. In fact, you possess the ability to define the layer shapes, the activation functions employed, and the connectivity between layers.
This is super simple. I could spend a whole post talking about each layer of a neural network (maybe I will). This understanding of the terminology and the purpose of each layer in a CNN will hopefully help people who are not in the immediate world of designing these tools feel left out of the conversation.