Alexander Volchek, IT entrepreneur, CEO GeekBrains
Explaining through simple examples
For a long time, people have been thinking on how to create a computer that could think like a person. The advent of artificial neural networks is a significant step in this direction. Our brain consists of neurons that receive information from sensory organs and process it: we recognize people we know by their faces, and we feel hungry when we see delicious food. All of this is the result of brain neurons working and interacting with each other. This is also the principle that artificial neural networks are based on, simulating the processes occurring in the human brain.
What are neural networks
Artificial neural networks are a software code that imitates the work of a brain and is capable of self-learning. Like a biological network, an artificial network also consists of neurons, but they have a simpler structure.
If you connect neurons into a sufficiently large network with controlled interaction, they will be able to perform quite complex tasks. For example, determining what is shown in a picture, or independently creating a photorealistic image based on a text description.
This person is not real: his portrait was generated by the Artbreeder neural network, following the queries from the shortcut menu on the right.
Neural networks do not always produce acceptable results. For example, the ruDALL-E neural network created this picture based on the query “Puppies on a field”
How a neural network works
An artificial neuron receives signals through several inputs, then transforms them and transmits them to other neurons. That is, the work of a neuron is to convert several parameters into one.
For instance, a neural network is trying to determine if there is an image of a tabby cat in a picture. It has already processed hundreds of thousands of cat photos and knows that the color of their coat is a combination of certain shades, such as black, silver and brindle. Signals are sent to the neuron that these three colors are predominant in the image, which means that, most likely, there is a cat in it. Next, the neural network checks if the picture has eyes, ears, and a tail. If all four factors match, it can state with confidence that the image is that of a cat.
In a very simplified way, the operational scheme of a neural network is like this. Imagine that for each “yes” answer we get 1 point, and for “no” we get 0 points. If, after verification, the neural network gets 4 points, it is totally confident that there is an image of a cat in the picture. If the result is 2-3 points, there is a high probability that the cat is there, but it might have hidden its tail. If the result is 1-0 points, then there is definitely no cat in the picture. Or it has hidden well.
In the example below, Sber developers demonstrate how their neural network correlates text descriptions with images. It has calculated that the highest chance to see a cat would be on the third photo.
The neural network made an error, though: it decided that the picture of a horse silhouette is the photograph of a book page.
What do we need neural networks for?
Neural networks help people to get rid of monotonous routine work by doing it much faster for them. For example, unmanned vehicles are being developed based on neural networks, which can free drivers from actual driving in the near future. People will be able to work, study or have fun on the road instead of monitoring the traffic situation. Neural networks in the Moscow metro are used when paying the ticket fee through one’s biometric data and when searching for people who are on the federal wanted list.
Neural networks are also used for forecasting, image recognition, controlling, recognition of hidden patterns in a large amount of data, as well as for solving tasks related to artificial intelligence, machine and deep learning.
The tasks that neural networks solve
Depending on the task that a neural network performs, it can be classified into one of the five types.
A neural network recognizes a person by their face or determines what is shown in the picture. For example, the Google neural net can identify what you are drawing with your mouse on a canvas.
A neural network can predict growth of stocks, the value of real estate or a person’s age based on a photo.
A neural net determining gender based on a photo will help to avoid mistakes when filling out documents
Time series forecasting
A neural network makes forecasts of weather, price rises or electricity consumption.
This also includes neural networks that control unmanned vehicles. They predict the behavior of other road users based on analyzing millions of hours of dashcam recordings.
A neural network combines large amounts of data into groups according to certain criteria.
The DeepCluster neural network arranges photos by subject: sunsets, planes, forest and buses
A neural network creates music, images, video or text according to the given parameters.
The Yandex neural net not only creates poems from user search queries, but also reads them aloud.
How do they train neural networks?
The main advantage of neural networks is their ability to self-learn. If we return to the example of finding a cat in a photo, then, after confusing it several times with a fox, a neural network will conclude that pointed ears is not the most specific attribute of a cat. And then it will start giving not 1, but 0.5 points for the answer “yes”. A well-trained neural network can recognize data that was not in the training set, as well as corrupt or incomplete data. For example, it will recognize a cat in a photo, even if only part of its face is visible.
Neural networks can learn in three ways:
A person trains a neural network using a ready-made set of data. For instance, a selection of photos in which people have their gender and age specified. Based on those data, the neural network on its own begins to determine the parameters of a photo.
This algorithm allows you to go without ready-made data. The neural network itself will verify its analysis for accuracy. If it is insufficient, the neural network will repeat the procedure.
A model in which a neural network is reinforced when it obtains a positive result and is penalized for incorrect calculations.
Neural networks only seem to be complicated and confusing, but in fact this technology has already acquired many auxiliary tools that help even entry-level programmers to create neural networks of their own. For example, hundreds of libraries have been written in Python, allowing one to deploy a ready-made neural network on their computer and to train it in line with the parameters needed.
Alexander Volchek, IT entrepreneur, CEO GeekBrains