We hear more and more success in the use of artificial neural networks. Here they paint pictures, here they write poetry. Creative and self-taught, won't they take on our work soon?
Trained on cats
New ways to use artificial neural networks are emerging more and more often. Here is an example of the last days. Nvidia engineer Robert Bond has created an automatic system to deal with the neighbour's cats, who love to invade his property without demand. The animals marking the territory and screaming at night were very annoying for the engineer. Now, as soon as the cat appears on the site, the system detects him and turns on the water sprayers, which scare the animal away.
You ask, what does the neural network have to do with it? Well, then try to explain to the computer what a cat is and what it looks like. It was a cat, and not any other animal that accidentally entered its site. Not a dog or an accidental crow, and even less so Bond himself, who went out to his site, although at first he also got it from the watering pads.
The artificial neural network Caffe plays a key role in this anti-chelation system. It is entrusted with the task of determining who exactly the visitor of the lawn is. With the help of a camera, the security system monitors all movements in the protected area. As soon as an unidentified object appears on the lawn, it is photographed and its images are transmitted to the Jetson TX1 - a hardware module from Nvidia, which is also designed for image recognition. If the neural network detects that there is a cat in the photographs, the sprinkler closest to it immediately turns on, which scares the animal away. But in the future, unless, of course, animal defenders stop the inventive engineer, Bond hopes to create a system that would shoot water at cats with an aim.
Is it possible to tune the system to dogs or, for example, only to ginger cats? Can. The advantage of neural networks is that they do not need to "verbally" explain what a cat is. She just needs a lot of pictures of these animals - the so-called training set. The network itself finds features in images that are characteristic of cats and remembers them. This is learning. Now that the network is trained, it will be able to recognize the cat in the images. By the way, you can try the Caffe neural network, created by scientists from the University of California at Berkeley, and see how it distinguishes cats from dogs at /demo.caffe.berkeleyvision.org/. Upload an image or paste a link to it and the system will tell you what is shown in the image.
New is old, but not forgotten at all
If it seems to you that artificial neural networks are something completely new, then this is not entirely true. Even the term "neural network" itself appeared in the middle of the last century. Then, at the dawn of the computer age, there was still no consensus on how the principle of operation of computers should be built.
Initially, there were at least two promising computer architectures. One of them - the von Neumann architecture - was relatively simpler and began to be implemented in practice. Now its principles are laid in the basis of almost all existing computers. The other, neural networks (neural network computers), has become the object of research by theorists. As a result, over the time that has passed since that moment, a significant theoretical base has been accumulated, which, in particular, made it possible to finally understand exactly how to teach neural networks.
In addition, at that time it was not possible to operate with large amounts of data.For example, the publicly available array of already marked-up images ImageNet contains more than a million images, therefore the requirements for the computational power of neural networks are quite high.
All this time, neural networks have been waiting in the wings. Today the situation has changed. In working with neural networks, they began to use high-performance video cards, and this made it possible to accelerate training tenfold. It is no coincidence that Nvidia - the world leader in the production of video cards - has relied on deep learning of neural networks.
Two architectures, von Neumann and neural network, have significant differences. But the most important difference is, of course, the possibility of self-learning of the neural network. If classical computers work according to a program previously written by a human, then a neurocomputer can be trained. Programs are written for traditional computers, the neural network is able to learn and act on the basis of the experience gained. Which, however, does not deny the need for targeted training and network tuning. By “feeding” the machine many images, which the network knows in advance that it is a cat, a dog, or, for example, a raven, and so on, you train it to recognize images. When it comes to the practical application of the acquired skills, the network will be able to determine what is shown in the picture by the signs that it itself noted in the learning process, and will give an appropriate answer.
Here is a good example of the application of pattern recognition technology. Nowadays, image searches on the Internet are based on keywords. The search engine searches for an image for your request, focusing on the text that accompanies the image on the site page. If the article is about cats, then it is logical to assume that the pictures in the text are images of cats. But sometimes this logic doesn't work. In the future, applying neural network technologies to image recognition, Yandex, Google or any other search engine will produce images recognized by the neural network, on which exactly what you are looking for. That is, the keywords will be generated from the image itself, and not from the text next to it.
In fact, for a computer, what a picture is, what a text, is nothing more than a set of bytes. Humanoid robots, sometimes so good at answering questions, just operate with pre-prepared answers, like a person in the "China Room," a thought experiment proposed by the American philosopher John Searle. Not knowing the essence of the question, the robot, or rather, the computer that controls it, executes the instruction, according to which it must give a predetermined answer to a predetermined question. Or, if the person has not prepared such an answer for him, take the "conversation" aside by giving a universal answer that will suit almost any question. The neural network will allow the robot's electronic "brain" to "understand" the meaning of the words spoken by the interlocutor, just as from the set of pixels that make up the image, the neural network "understands" what is depicted on it.
Returning to search engines, it is also worth saying that Yandex does not know the meaning of the texts that it indexes. Only the presence of the so-called "keywords" allows you to determine the relevance of the found text and the user's request.
Neural networks will provide a better interface for communicating with the machine. The search engine will be able to ask a question and get an answer or a set of the most relevant texts from the Internet. It will be possible to give commands to the robot in simple language. For example, a request to bring a hammer can be expressed in many ways, rearranging the words, as the Russian language only allows. And the robot will understand you. Strictly speaking, neural networks are the technologies that will allow us to get what we have been expecting from computers for so long: machine vision, understanding of human speech, self-driving drones, and much more.
How neural networks work
So, actually, how do neural networks work? Each neuron in the network does its own small amount of total work. Neurons are grouped into several sequential layers. Input signals (for example, image pixels) arrive at the first layer of neurons and sequentially pass through all layers. From first to last. True, there are also so-called recurrent structures that circulate a certain set of internal signals in the network. External input data goes through all the layers sequentially and at the output is already presented as a result. Neural networks are able to generalize data and find patterns in them. Memorize the findings and apply them in work.
It is believed that an artificial neural network imitates the structure and properties of the nervous system of living organisms, or even the human brain. Like the brain, artificial neural networks consist of many neurons (computational elements) interconnected through synapses. However, some believe that these common features alone are not enough, and there is actually little in common between the work of artificial neural networks and the human brain.
What is the work of a particular neuron? Everything happens in the following way. A set of input signals is received at the input of a neuron, which it sums up and, having generated an output signal, sends it to other neurons or to the output of the network. It should be noted that the neurons of the input (first) layer of the network do not perform mathematical operations, their purpose is to multiply input signals and transmit them to other neurons. Signals entering the neuron are multiplied by specified coefficients (they are called "weights"), then they are summed up, and the result obtained is converted using a certain function, and then transmitted to the output.
In this scheme, the key point is precisely the weights. The ability to customize the network to solve a specific problem and the flexibility of the system are determined by them. The input signal multiplied by the higher weight results in a larger contribution to the total. But if the weight is equal to zero, then it will not be taken into account.
Finding the correct weights for each neuron is the training of the network. Signals are sent to the input neurons of the network, for which it is known in advance what they correspond to. If the network is trained to recognize cats, then these will be images of cats and cats of different breeds and colors. If the network gives an incorrect answer at the output, then the values of the weights change. And so on until the network gives the correct answer.
Note also that networks with a small number of neurons learn faster, but at the same time, they are not always able to solve complex problems. Therefore, when building a neural network, it is important to determine the required number of neurons in the network. In addition, so that the training does not take too long, it is also important to set the initial value of the weights at the start.
In addition to training a neural network, you can also customize: include additional neurons or even new layers of neurons and exclude unnecessary neurons, layers or connections between them. This makes it possible to better adapt networks to the tasks for which they are created.
But the matter is not limited to pattern recognition. Not so long ago, the artificial intelligence AlphaGo defeated the master of the game of go, Lee Sedol. Unlike chess, Go, which has a huge number of possible positions, did not want to succumb to the computer. The Deep Blue supercomputer beat the world chess champion Garry Kasparov back in 1997. I managed to win Go only now. The neural network consisting of 13 levels was trained on professional games taken from the KGS Go Server. In addition, in the learning process, the network played with other programs and with its own copies.
The future belongs to the neural network. This trend will not pass, as the fashion for something interesting, but generally useless, goes away. Neural networks are the next stage in the development of computer systems. Soon they will surround us everywhere. We, figuratively speaking, find ourselves in neural networks.As enthusiasts who are passionate about their development predict, in the future we will read news notes written by the neural network and listen to music composed by it. Communicate with voice assistants who will understand us thanks to this technology, and use high-quality voice machine translation. Neural networks will predict the weather, control unmanned vehicles and military drones. They can be applied in almost any field, and when solving problems where it is required to process large amounts of data, they will be simply irreplaceable. Many professions, including those that are customarily classified as creative, may indeed be under threat.
An increasing number of developers are engaged in neural networks. A large number of tools and data have appeared in the public domain. Equipment for building neural networks has become more accessible. The technology becomes available not only to large corporations, but also to anyone who knows how to program. Accordingly, there are more and more services based on neural network technology and designed for ordinary users.
So, for example, the Prisma application in just a few days took the lead in terms of the number of downloads in the AppStore in ten countries, including Russia. An application created by Russian developers, which has already appeared on Google play, allows you to "redraw" a photo you have taken, stylizing it to look like a painting by a famous artist. In the arsenal of applications Van Gogh, Picasso, Levitan, Hokusai and other recognized geniuses. Or the infamous FindFace application, which allows you to find a person's profile on social networks from a photo you took five minutes ago. For search, it uses our photos posted on the VKontakte social network. So we have definitely got into neural networks.