Artificial Neural Networks consist of multiple layers for data processing. Each layer consists of artificial neurons. In its simplest form, an ANN consists of three layers: the input layer (where the data enters the system), the hidden layer (where the information is processed) and the output layer (where the system decides what to do based on the data). Neural networks learn e.g. by adjusting the weights of connections or adding new connections. ANN are used to approximate complex functions where the explicit modelling is difficult or practically impossible.