## 1 Introduction
### Artificial Neural Networks  
Artificial neural networks (ANNs) belong to the area of machine learning (ML), which, in turn, are assigned to AI. ANNs are able to learn and execute complex procedures, which has led to remarkable results in recent years. ANNs or, more precisely, feedforward neural networks, consist of layers connected in sequence. These layers contain so-called neurons [6]. A neuron (see Figure 1) is the basic element of an ANN. The combination of all layers is also called a network.  
The neuron receives \(n\) inputs (here given as vector \(\mathbf{z}\)), which are linearly combined and added to a bias value \(b\) and passed as argument to an activation function \(f_{a}\) as follows:  
\[f_{n}(\mathbf{z})=f_{a}(\mathbf{w}^{\mathsf{T}}\mathbf{z}+b). \tag{1}\]  
The coefficients of the linear combination, collected in the vector \(\mathbf{w}\), are called weights.  
It is usual that several neurons have the same input. All neurons with the same inputs are grouped together in one layer (also called the fully connected layer). Since one single output is supplied by each neuron, each layer with \(m\) neurons also produces \(m\) outputs, and the weights become matrices \(\mathbf{W}\in\mathbb{R}^{n\times m}\). The outputs of a layer (except the last layer) serve as inputs for the following layer. The first layer is called input layer \(f^{(1)}\) and the last layer is called output layer \(f^{(n_{\mathrm{L}})}\). Any layer whose input and output values are not accessible to the user is called hidden layer \(f^{(2,...,n_{\mathrm{L}}-1)}\). Each layer, for example, layer \(f^{(2)}\), has its own weights \(\mathbf{W}^{(2)}\) and biases \(\mathbf{b}^{(2)}\).  
The number of layers \(n_{\mathrm{L}}\) is also named the depth of the network, which also originate the attribute \"deep\" in the term deep learning (DL). The term DL is generally used for ANNs with several hidden layers. The presence of several layers makes it possible to map a more complex transfer behavior between the input and the output layer.  
Figure 1: Graphical representation of the calculation procedure of a single neuron.  
The functional relationship  
\[\begin{split} y&=f_{\text{ANN}}(\mathbf{z},\mathbf{W}^{(1,\ldots,n_{\text{L}})},\mathbf{b}^{(1,\ldots,n_{\text{L}})})\\ &=f^{(n_{\text{f}}-1)}\Big{(}f^{(\ldots)}\Big{(}f^{(2)}\Big{(}f^{ (1)}(\mathbf{z})\Big{)}\Big{)}\Big{)}\end{split} \tag{2}\]  
realized by the ANN depends on the weights \(\mathbf{W}\) and on the biases \(\mathbf{b}\), which are adjusted in the context of so-called training or learning, according to certain algorithms (learning algorithms). The learning algorithm used consists of the gradient-based minimization of a scalar value termed error or loss, which is obtained from the deviations of the actual outputs from given target outputs. The values, which describe the network's architecture and do not undergo any change during training, such as the number of neurons in a layer, are termed hyperparameters.  
In addition to the fully connected layers, there are convolutional layers. These layers use convolution in place of the linear combination (1). Here, the trainable weights, also called the convolution kernel, are convoluted with the input of the layer and produce an output, which is passed to the next layer. This process is efficient for grid-like data structures and is, therefore, used for many modern image applications [7; 8].  
The output of an ANN is henceforth referred to as prediction. Further details on the learning of an ANN can be found in the specific literature, for example, [7; 9].