## 2 Computational Intelligence
### Neural Networks  
The attempt to simulate the human brain and, by extension, the central nervous system constitutes the training of neural networks. It is an architecture that uses information processing (stimuli), the communication between neurons in parallel and distributed processing processes and the learning, recognition and inference capabilities that are integrated and processed in real-time [4; 11].  
Neurons are the building blocks and nodes of neural networks, with each node receiving a set of numerical inputs (input layer), either from other neurons or from the environment. Based on these inputs, a calculation (hidden layer) is performed, producing an output (output layer). These layers of neurons multiply their information by matching synaptic weights and totaling the results. This sum is fed as an argument to the activation function, which each node implements internally. The value the part receives for that argument is the neuron's output for the current inputs and weights [12; 13].  
More specifically, neural networks are clusters of neurons that have transfer functions and are hierarchically structured according to the levels above. They implement an \(f:R^{N}\to T\) function using various architectures depending on the intended effect. The numerical inputs \(x_{1}\),..., \(x_{n}\) are multiplied by the weights \(w_{1}\),..., \(w_{n}\), respectively, and then summed, taking into account the bias constant \(\beta\), which is the \(n+1\) weight of the artificial neuron. Therefore, the output (\(\sigma\)) is calculated as follows [12; 14; 15]:  
\[\sigma=\sum_{i=1}^{n}w_{i}x_{i}+\beta=\sum_{i=1}^{n}w_{i}x_{i}=w^{T}\cdot x\]  
where \(w^{T}\cdot x\) represents the inner product of the vector \(x=\left(x_{1},\ldots,x_{n},1\right)^{T}\) input of the artificial neuron on the vector \(w=\left(w_{1},\ldots,w_{n},w_{n+1}\right)^{T}\) weights. The weighted linear sum, \(\sigma\), of the neuron's inputs is then fed into a non-linear distortion component, \(f(\sigma)\), called the transfer function. Some of the more popular \(f(\sigma)\) that have been proposed in the literature are presented below [4; 5]:  
1. Hyperbolic tangent: \[f(\sigma)=\frac{1-e^{-\sigma}}{1+e^{-\sigma}}\]
2. Sigmoid: \[f(\sigma)=\frac{1}{1+e^{-\sigma}}\]
3. ReLU: \[f(x)=x^{+}=max(0,x)\]  
Depending on how the layers are interconnected and how the nodes communicate, various architectures emerge, the most significant of which are the contemporary deep architectures, which can solve particularly complex problems. CNN, or ConvNet, is one of the most prevalent deep neural networks. Due to the convolutional layering of learned characteristics with input data, this architecture is suitable for processing 2D data such as images. CNNs eliminate the human supervision preprocess by automatically identifying and extracting image classification characteristics. The essential components of deep architecture neural networks are not pre-trained but learn as the network trains on a collection of patterns. Deep learning models are highly accurate for computer vision applications such as object categorization [4; 5]. Figure 1 depicts the classification process of a CNN.  
Filters are applied in the CNN architecture at varying resolutions to each training picture, and each convolved image's result serves as the next layer's input. Every feature map output is the result of applying a filter to the image. The new feature map is the next input.