# Solar Power Prediction Modeling Based on Artificial Neural Networks under Partial Shading
## 3 Neural Network  
Artificial neural networks are used for tasks such as nonlinear modeling, pattern recognition and classification, and processing large volumes of data. The types of artificial neural networks include perceptron neural networks, multilayer perceptron (MLP), convolutional neural networks (CNN), and reinforcement learning neural networks. In this study, the MLP artificial neural network is utilized to process and analyze large volumes of data for predictive purposes. MLPs have a structure with one or more hidden layers between the input and output layers. The hidden layers use a nonlinear activation function to transform the input data and output the final prediction in the output layer. This study uses sigmoidal and linear transfer functions as activation functions. First, the sigmoid function is as follows. \[sigmoid(x)=\frac{1}{1+e^{-x}} \tag{11}\]  
The sigmoid function is one of the commonly used activation functions in artificial neural networks. Also known as the logistic function, it is a type of nonlinear function. It compresses the input values to an output range between 0 and 1. As the input to the sigmoid function increases, the output approaches 1, while for smaller input, the output approaches 0. This nonlinear activation function is crucial in enabling neural networks to handle complex patterns and to solve intricate problems. The sigmoid function's distinctive characteristic is that it has the steepest slope around the input value of 0. This property proves beneficial during the learning process as it aids in adjusting the network's weights rapidly. A large slope implies quick adjustments to the weights, leading to faster learning progress. However, the sigmoid function encounters an issue known as the vanishing gradient when the output values become large. In such cases, the slope of the function approaches zero, causing slower learning rates. This phenomenon can hinder deep neural networks' ability to learn effectively. Another drawback of the sigmoid function is the saturation problem. When the output values approach 0 or 1, the slope becomes almost zero, resulting in minimal weight updates during training. This issue poses challenges in deep neural networks, making learning more difficult as the network depth increases. Using nonlinear functions in artificial neural networks is crucial because linear functions alone are inadequate for solving complex problems. By employing nonlinear activation functions like the sigmoid function, neural networks can efficiently learn and represent intricate patterns, enabling them to tackle a wide range of challenging tasks. Next, the linear transfer function is discussed. \[Linear(z)=\lambda z \tag{12}\]  
The linear function is a function where the output varies by a constant multiple of the input. Since it performs a linear transformation on the input, it can still be expressed as a single linear function, even if we connect multiple layers with linear transfer functions. Therefore, using multiple linear functions in succession would not enhance the expressive power of the neural network or enable it to learn complex patterns effectively. As a result, employing linear transfer functions in the hidden layers of neural networks like multilayer perceptron does not add much value. However, in cases where the predicted values are real numbers, such as regression problems, using the linear transfer function as the activation function can lead to improved performance. The Levenberg-Marquardtalgorithm is used as the learning algorithm for training artificial neural networks. It is an algorithm used for nonlinear least-squares-optimization problems. The Levenberg-Marquardt algorithm is a neural network training function that updates weights and bias values based on an optimization algorithm. It is a hybrid of the Gauss-Newton method and the vanilla-gradient descent method and can be represented as follows [14; 15; 16].