# Power Prediction in Photovoltaic Systems with Neural Networks: A Multi-Parameter Approach
## 3 Neural Network  
AI is a scientific field that enables computers to perform problem-learning and solving processes by imitating human cognitive abilities [22]. Today, AI is utilized for various purposes in many fields, including education, healthcare, defense, energy, and construction [22,23,24]. There exist numerous AI algorithms [4], each possessing distinct technical characteristics and being selected based on factors such as purpose of use and data type. Among the most commonly used AI algorithms are LR, SVM, Decision Trees (DT), Gaussian Process Regression (GPR), and ANN. Among these methods, an ANN operates by mimicking biological neural networks. It first analyzes the problem, learns the input/output values, and then autonomously generates the most appropriate output based on predefined criteria. ANNs are known for their effectiveness in solving nonlinear problems [25,26]. Moreover, they have a large memory capacity and high-speed processing capability. Therefore, ANNs are widely used in solving complex problems [27]. A basic ANN model consists of an input layer, an output layer, and one or more hidden layers, as illustrated in Figure 2. The data related to the problem to be solved by the ANN are transmitted to the input layer as input values. These input values are analyzed in the hidden layer, which contains hidden neurons, and processed to generate the appropriate output value by the ANN model. The number of hidden layers, which is determined according to the complexity of the problem, enhances the learning ability of the network but, unfortunately, also increases the complexity of the model. The processeddata from the hidden layer are then transmitted to the output layer, where the target values are generated and presented as output values. The success of an ANN model is fundamentally based on several factors, including the quantity and quality of data, the model architecture (e.g., number of layers, number of neurons, activation functions), and the learning process. Various algorithms are used in an ANN to train the network, enhance the learning process, and make accurate predictions. The Levenberg-Marquardt algorithm is one of the widely used techniques for training ANNs. By combining the advantages of Gauss-Newton and gradient descent methods, it provides fast and accurate learning and can solve nonlinear least squares problems [28]. In addition, the Levenberg-Marquardt algorithm regulates the learning process by dynamically adjusting the step size, and provides faster convergence and higher accuracy [28]. The learning process consists of training, validation, and testing phases. To complete these phases, the input data of the model are divided into three subsets and used accordingly in training, validation, and testing processes. In the training phase, input data are processed, network weights are adjusted, and the error rate is minimized. This phase forms the foundation of the learning process. In the second phase, validation, the generalization ability of the model is evaluated, and parameters are updated to prevent overfitting. If the model's performance does not meet expectations, the number of layers and neurons can be adjusted to improve accuracy. In the final phase, testing, the model's performance is evaluated using data that were never used in the training and validation phases. Various metrics are used to evaluate the performance of the ANN model. R and MSE are among the most commonly used metrics. The MSE value is calculated using Equation (1). \[MSE=\frac{1}{n}{\sum_{i=1}^{n}{\left({y_{i}-y_{i}^{\prime}}\right)^{2}}} \tag{1}\]  
In the equation, n represents the number of data points, while y\({}_{i}\) denotes the actual value and y\({}_{i}\)\({}^{\prime}\) represents the predicted value. The closer the predicted value is to the actual value, the smaller the MSE value becomes. In other words, a lower MSE indicates higher model performance. Ideally, the MSE value is expected to be as close to zero as possible. The R value is calculated using Equation (2).