What You Absolutely Need to Know about CNNs
CNN stands for Convolutional Neural Networks. It’s a class of neural networks that is usually used for image recognition and is based on the idea of … well, convolution.
Essentially, convolution here is the way the information is processed by artificial neurons: they take advantage of the hierarchical pattern in images and assemble more complex patterns using smaller and simpler patterns.
The neurons are grouped into layers where each layer tries to recognize certain level of detail in small rectangular areas of a picture: neurons in the first layer strive to find lines and dots, then they hand over their findings to the next level, whose task is to analyze the lines and dots and see if they can form a nose, an eye or an ear. The last layer will convolve the found parts into a human face or … not. Of course, there can be more or less layers and they can be trained to recognize not only faces.
So how does the neural network work? Let’s have a look at the neurons, the core elements of CNNs and other types of neural nets.
First of all, neural networks are not models of a human brain and artificial neurons do not mimic natural neurons, the cells that our brains are made of. Artificial neurons are, in fact, mathematical functions, whose task is quite simple: get a value from their input, process it and send the output to other neurons. The links that connect neurons in the network have adjustable weights. The learning algorithm keeps changing the weights of the links between neurons and (sometimes) altering some parameters inside of the neurons until the net learns what weights and parameters need to be assigned to get a model that does what it is trained to do.
Of course, such training requires a lot of iterations and a lot of examples to train on. As any other machine learning algorithm, CNNs require a lot of data to train. If the network is supposed to find human faces in images, it needs hundreds of thousands of examples of such images.
At ImmuniWeb, we leverage different Machine Learning models built by CNN for intelligent automation of application security testing, enabling our security experts to quickly analyze thousands of web pages.