Anyone who's ever heard of artificial intelligence would probably try to link artificial neural networks to it. They can be thought of methods that truly allow computers to learn and think far better than what can be programmed. While it is a fact that computers can operate faster than the human brain, they were however not instructed to learn on their own. That had continued to be the case until machine learning was broken down, explored and made practical in everyday use as you are probably reading this on a device which has more or less the ability to learn in certain areas.

In machine learning, there are numerous algorithms that learn relations and patterns based on a series of observations which are usually in the form of datasets. These algorithms produce models that can later predict the outcomes of new observations, but they are however never perfect. Usually, the term "Loss" and sometimes "Accuracy" are used in order to decide whether a model is suitable or not. Nevertheless, these classical algorithms usually need a lot of pre-processing, as they are very time-consuming.

Nevertheless, a method that was first discussed in the 1940's called artificial neural network has now become the quintessential machine learning method. These networks are usually built based on their inputs, whether they are images, text files or even numerical datasets. The current form of most ANNs are forms of multi-layer perceptron networks or MLPs. These networks can be modeled and designed for many different tasks, such as image processing, data generation and what we have come to know as deep learning.

What makes a neural network so special is that it tries to map the desired inputs to outputs and succeeds by mathematically reshaping itself in order to do just that. The linking of inputs to outputs is more or less something that human beings usually do when learning. ANNs go beyond the usual mapping of records to classes, as many classifiers do. ANNs can literally map anything from any input space X to other spaces.

A very good example is a convolutional nerual network called FaceNet, which was proposed Schroff et al. in 2015 which maps any input image of a person's face to a 128-dimensional space of real numbers describing the person's face, which can be used in dividing people into groups using clustering or classification algorithms easily.

Some neural networks even map data to a specific Y space and then map them back to the X space, which are called Autoencoders. By doing this back and fourth, they end up with a compressed data space (Y) which can easily regenerate (decompress) data back to itself.

As a CS student, I took the course neural networks last semester, and managed to get a full mark, but the course was mainly about basics of the older neural networks, and very little to do with the modern MLPs, although it was a part of the final class project.