# Applications of Artificial Intelligence to Photovoltaic Systems: A Review
## 3 Artificial Intelligence Applied to PV Systems
### Forecasting  
Energy production forecasting has been an important problem, even in traditional systems, and it has been tackled with different techniques, as it can be seen in Figure 5.  
In [75], we found a system that uses Support Vector Machines (SVM) [69]. SVM is mostly used for regression. The model uses two different inputs: solar irradiance and environmental temperature, with energy production as the output. This work included the use of a parameter to tune the number of support vectors during the training. The results show a low error, with a Mean Absolute Percentage Error (MAPE) of 0.1143, but it was really intolerant at errors in the input data. The method was implemented using MATLAB. Another approach related with SVM is found in [76]. The authors propose a multi-input support vector. Three different inputs were tested. Only solar power, solar power and solar irradiance combined and finally solar power, temperature and irradiance. The best predictions were made when the third vector was used to train the network with. The model showed better results than analytical methods with a MAPE of 36%, but it was found that it was weak against changes in the climate. The method was implemented using MATLAB. In [77], a Neural Network was used for Short-Term Forecasting. The input data were composed of the the deviation of load power and temperature of 30 days before the forecast day and the same data of 60 days before and after the forecast day in the previous year. If the forecast day is changed, the neural network needs to be retrained. The network is composed of 9 inputs nodes, 20 hidden nodes and one output neuron. The results show a Mean Absolute Percentage Error (MAPE) of 1.63% on average. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Type** & **Reference** & **Features** \\ \hline \multirow{6}{*}{FeedForward Neural Network} & [65] & 2 networks. Each one with a single hidden layer of 20 nodes. 5 Nodes on a single layer. Data preprocessed by Genetic \\  & [49] & 5 Nodes on a single layer. Data preprocessed by Genetic \\  & [66] & Three hidden layers with 8,7,7 nodes, respectively. \\  & [66] & Bayesian-Regulated back-propagation for training. \\  & [68] & A Single hidden layer with 13 neurons. Data created by a \\  & [41] & Course Gaussian Support Vector Machine. \\  & [70] & 2.3-3-1 structure. The NN is optimized by FPSOGSA. \\  & [70] & The topology and best weights are optimized by a PSO algorithm. \\  & [61] & ACO is used to optimize the neural network. \\ \hline \multirow{6}{*}{Adaptive Neural Fuzzy System Interface} & [42] & Bat Algorithm is used to train the network. \\  & [73] & Crowded Plant Height Optimization is in charge of \\  & [73] & performing the learning of the network. \\ \cline{1-1}  & [67] & Combines Fuzzy Logic and Neural Networks. Three \\ \cline{1-1}  & [67] & intermediate layers in which the output is based on fuzzy \\ \hline \multirow{2}{*}{Recurrent Neural Network} & [40] & A hidden layer and a context layer storing the results of \\ \cline{1-1}  & [40] & the previous outputs of the hidden layer. A metaheuristic \\ \cline{1-1}  & [71] & is used to optimize the structure and weights. \\ \hline \multirow{2}{*}{Deep Reinforcement Learning} & \multirow{2}{*}{[71]} & Four networks, one for computing the policy, one for the \\ \cline{1-1}  & [71] & critic and two called targets that are used to stabilize the \\ \cline{1-1}  & & learning procedure \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Neural Network Models for MPPT. The work of [78] tries to go further, presenting a neural network of 2 hidden layers, one of 6 nodes and the second with 4. This model has nine inputs (Day, Time, Cloud Cover Index, Air Temperature, Wind speed, Air Humidity, UV index, precipitation and air pressure) and is trained using a hybrid metaheuristic, which combines PSO and GA [79]. This hybrid is faster and more robust than back-propagation for this problem. Neural Networks have been found to be sensitive to many factors, including the architecture or the initialization of weights.