Part 3: Convolutional Neural Networks (CNN)
This article, mainly discussing the Convolutional Neural Network(CNN) which is one of the main part of Supervised Learning with neural networks.
(1) What are Convolutional Neural Networks?
- Convolutional Neural Networks are designed to address image recognition systems and classification problems.
- Convolutional Neural Networks, like FFNNs, is made up of neurons with learnable weights and biases. Each neuron receives several inputs, takes a weighted sum over them, passes it through an activation function, and responds with an output.
- The whole network has a loss function and all the tips and tricks that we developed for neural networks still apply to Convolutional neural networks.
(2) What are the applications of Convolutional Neural Networks?
- Convolutional Neural Networks have wide applications in image and video recognition, recommendation systems, and Natural Language Processing.
- Pattern Recognition related to images
- Character recognition / Analyzing Documents
- Decoding Facial Recognition / Advertising
- Understanding CLimate/ weather
(3) How do Convolutional Neural Networks work?
- There are four layered concepts to understand Convolutional neural networks.
- Convolutional neural networks are composed of multiple layers of artificial neurons. Artificial neurons, a rough imitation of their biological counterparts, are mathematical functions that calculate the weighted sum of multiple inputs and outputs an activation value.
- Convolution Layer-Different positions, features recognition
- RELU Layer-Rectified Linear Unit transform function activation. The main aim is to remove all the negative values from the convolution.
- Pooling Layer- From this layer, shrink the image stack into a smaller size. Pooling is done after passing through the activation layer.
- Dense Layer- In this layer, mimics high-level reasoning possible pathways from the input to output are considered. Also in this fully connected layer is the final layer where the classification actually happens.
(4) Training the Convolutional Neural Networks
- One of the great challenges of developing CNNs is adjusting the weights of the individual neurons to extract the right features from images. The process of adjusting these weights is called “training” the neural network.
- During training, the developers provide the neural network with a large dataset of images annotated with their corresponding classes (cat, dog, horse, etc.)
- By using Backpropagation algorithm ,optimizes the tuning process and makes it easier for the network to decide which units to adjust instead of making random corrections.
- The success of convolutional neural networks is largely due to the availability of huge image datasets
(5) The limits or drawbacks of Convolutional Neural Networks
- CNNs are now widely used to moderate content on social media networks.
- It takes a very long time to train a convolutional neural network, especially with large datasets. You generally need specialized hardware (like a GPU) to expedite the training process.
- CNNs are translation-invariant, they are generally bad at handling rotation and scale-invariance without explicit data augmentation.
- High computational cost.
This article is mainly about Convolutional Neural networks (CNN)which are commonly used in Supervised Learning with neural networks. The next article is mainly focusing on Recurrent Neural networks (RNN)