Neural Networks are computing systems vaguely inspired by the networks that constitute animal brains. They simulate the functioning of Neurons in Human Nervous System. Without being pre-programmed with a specific set of rules, these systems “learn” to perform tasks on their own considering a variety of examples. For example, the systems might learn to identify a picture of an object, say ‘a car’, without the provision of any prior knowledge of the subject. Just like humans do.
In Machine Learning, a Convolutional Neural Network(CNN) is a class of deep, feed-forward artificial neural networks. They use several multi-layer perceptrons based on shared-weights architecture, which tread efficiently even on minimal pre-processing. CNNs, like neural networks, are made up of neurons with learnable weights and biases. Each neuron receives several inputs, takes a weighted sum over them, pass it through an activation function and responds with an output. They have wide applications in Computer Vision, such as Image and Video Recognition, Recommender Systems and Natural Language Processing(NLP).
How are Convolutional Neural Networks different than Artificial Neural Networks?
CNNs operate over Volumes. Unlike neural networks, where the input is a vector, here the input is a multi-channeled image.
Architecture of CNN
The convolution layer is the main building block of a convolutional neural network. The Convolution Layer(CONV) comprises of a set of independent filters. Each filter is independently convolved with the image. All these filters are initialized randomly and become parameters which will be learned by the network subsequently. CNNs exhibit parameter sharing and local connectivity. Parameter sharing is sharing of weights by all neurons in a particular feature map. Local connectivity is the concept of each neural connected only to a subset of the input image. The Pooling Layer(POOL) progressively reduces the spatial size of the representation to reduce the amount of parameters and computation in the network. The FC is the fully connected layer of neurons at the end of CNN.
CNN in Games
Reinforcement Learning is a Machine Learning technique with which a computer can learn, understand and comprehend the features of a game and get it better at it with every single iteration. CNNs are used to implement Reinforcement Learning in order to optimize the future expected reward. For example, in the game ‘Flappy Bird’, the computer can train itself to navigate the bird across the course effortlessly, on repetitive attempts.
In terms of performance, CNN outperforms NN on multiple conventional tasks, thus making it an optimum technique for implementation!
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://medium.com/technologymadeeasy/the-best-explanation-of-convolutional-neural-networks-on-the-internet-fbb8b1ad5df8