Artificial neural networks are mathematical models composed of artificial neurons inspired by biological neural networks (human or animal). They are used to solve Artificial Intelligence engineering problems related to different technological areas such as computer science, electronics, simulation, or other disciplines.
We could say that neural networks are mathematical-computer models based on the functioning of biological neural networks, that is, models consisting of interconnections of information. These interconnections derive from artificial neurons and computational processes based on the cognitive science model called "connectionism" which is based on PDP - Parallel Distributed Processing, distributed parallelism processing of information.
The human brain processes the information of the various senses in a parallel way. It distributes the information in all the different nodes of the network, not in a central memory, making the comparison with traditional computing. The calculations take place in a serial and not parallel way, and the data are stored in a central memory, even if, as we will see.
In the analysis of what neural networks are and how they work, we cannot overlook mention of the so-called expert systems. These are mostly applications that fall within the branch of artificial intelligence because they artificially reproduce the performance of an expert person in a specific domain of knowledge or field of activity.
It is not new; they introduced into research dates back to the 70s when scientists managed to create software programs capable of preserving, organizing, and offering the user the knowledge of a specific domain.
A true revolution allowed us to create software solutions capable of identifying solutions to complex problems. Solutions that we would now classify as decision support systems by defining expert systems as intelligent software which, by dynamically answering user questions, support them in solving a problem related to a specific matter i.e. a particular domain of knowledge.
The expert systems are structured on three different technological levels:
1) Knowledge base: we could identify it as the database of information needed by the system to provide an answer to a specific problem (as would the expert human being who has specific knowledge of the subject to be applied to solving the problem). This is the source where information and rules are stored which allow the system to implement reasoning.
2) Inference engine: the knowledge base at the base of an expert system that contains the specific information of a series of If-Then rules. If a specific condition occurs - for example, a particular question is asked - a specific rule applies - for example, a second question is asked, or a right answer is given, or a specific action is started, etc.
This "rule engine" is, in fact, the software component which, analyzing and processing the information contained in the knowledge base, understands the problem, and proposes a solution.
3) User interface: This is the part of the software that allows the user to take advantage of the inference engine. Usually, it is a web interface, sometimes very simplified, sometimes more structured and integrated with other systems based on artificial intelligence, such as the recognition and understanding of natural language.
In the common imagination, expert systems are associated with artificial neural networks. We often resort to human comparison and are said to be systems capable of replicating the performance of an expert human being. (talking about neural networks artificial as systems capable of emulating the functioning of the biological brain).
In reality, the difference between these technologies is quite evident when comparing the features:
1) An expert system can deduce some reasoning (Mario is a human being; men are mortal; Mario is not immortal), which the neural network does not do; the latter, however, is perfectly capable of recognizing a human face in an intricate image, which the expert system is unable to do.
2) The expert system can explain how he arrived at a solution (retracing where and how he applied the If-Then rules based on knowledge); on the other hand, the functioning of the neural networks is very complex, and it is almost impossible to trace the logical procedure that led to a specific solution.
3) Expert systems need a primary intervention by the domain expert who defines the rules that feed the inferential engine, must, therefore, be programmed; neural networks instead "deduce" rules and activities automatically, through learning (neural networks do not use If-Then rules).
Although today the attention is often directed only to neural networks, the technological maturity reached by expert systems has allowed them to find the important application. So, we talk about the "next level," the one that sees expert systems and neural networks working together.
Although, as we have seen, these are different technologies, neural networks could be exploited to autonomously "feed" the knowledge base of expert systems. To understand how we see how neural networks work.
A neural network presents itself as an "adaptive" system capable of changing its structure (nodes and interconnections) based on both external data and internal information that connect and pass through the neural network during the learning phase and reasoning.
We understand how a biological neural network receives external data, and signals in humans and animals are perceived through the senses due to complex organizations of nerve cells. They perform different tasks such as the perception of the environment, the recognition of stimuli, etc.). These are processed in information through an impressive number of neurons (which represent the computational capacity) interconnected with each other in a non-linear and variable structure.
In the same way, artificial neural networks are non-linear structures of statistical data organized as modeling tools. They receive external signals on a layer of nodes that represents the processing unit, the processor. Each of these "input nodes" is connected to various internal nodes of the network, which are organized on several levels so that each individual node can process the signals received by transmitting the result of its processing.
Neural networks are made up of three layers (which, however, can involve thousands of neurons and tens of thousands of connections
1) The input layer (I - Input): it is the one that has the task of receiving and processing the input signals adapting them to the requests of the network neurons.
2) The H - hidden layer (hidden layer): it is the one in charge of the actual processing process and can also be structured with multiple column-levels of neurons.