# A State-of-Art-Review on Machine-Learning Based Methods for PV
## 2 Machine Learning, Deep Learning and Related Methods  
Nowadays, the term Artificial Intelligence is quite common and people, often even without knowing it, benefit from AI every single day: from Alexa (a ubiquitous application of a field of machine learning (ML) known as Natural Language Processing); to the recommendation system of Netflix, suggesting content for users to watch next using similar users' preferences; to the automated driving systems that equip many new recent car models. To better clarify the terms that are reported in many research papers, this section will briefly define the most common ones. AI indicates a branch of computer science that studies ways to build intelligent programs in a way that mimics human reasoning; the benchmark for AI is human intelligence regarding reasoning, speech, learning, vision and problem-solving. To AI belong two other methods: ML and Deep Learning (DL) [14]. Machine learning is, as anticipated, a subset of AI that allows systems/programs to learn from data without being declaratively programmed; in this sense, it is a data-driven method. An example of machine learning is the so-called (Shallow) Artificial Neural Network (ANN); more on this later. DL, often indicated as a deep neural learning/network (DNN), is a peculiar type of neural network which differs from the usual ANNs (also known as shallow neural networks, SNNs) by being composed of several hidden layers, complex connectivity architectures and different transfer operators. Deep learning is a term currently quite common in literature but is not new. It can be dated back to 1986. In 1986, Carnegie Mellon professor and computer scientist [PERSON], by many considered as the \"Godfather of Deep Learning\", demonstrated that more than just a few of a Neural Network's layers could be trained using backpropagation for improved shape recognition and word prediction. [PERSON] went on to coin the term \"deep learning\" in 2006. However, only during recent years has this type of network reached a broad diffusion thanks to the advent of the graphics processing unit, GPU, mainly by NVIDIA with its CUDA extensions, that can dramatically improve the calculation time required to train this type of network [15]. In past years, many ML frameworks have been raised and many of them are capable of exploiting GPU power, including TensorFlow by Google and Pytorch from Facebook, to cite just a few. These user-oriented ML frameworks have contributed to the diffusion of DL. With the advent and wide adoption of DL in many different fields, many techniques and algorithms have been introduced to train DNNs; think of the concept of \"batch size\" or the well-known and widespread training algorithm ADAM [16]. For some aspects, the difference between an SNN and DNN can be subtle as the techniques originally developed to train DNNs are currently used also for SNNs. The most important difference between an SNN (or ML) and DNN (or DL) is that the latter does not require \"feature engineering\" to be able to extract the relevant features automatically from data. Usually for achieving this, significantly more data is required to efficiently train DL architecture. As previously said, ML is a data-driven method capable of extracting knowledge from data without being explicitly programmed, but for this to be possible ML requires a data set on which the model is \"trained\"; after this initial phase of knowledge extraction from data, the ML model can be used to provide forecast/insight into the system, it is said it can work in \"inference\" mode. The training phase is usually quite computationally and time intensive, while in inference mode the ML model can often provide results in times that are an order of difference lesser than in training. The data set used for training needs to be correctly transformed/normalized to derive the correct \"features\" that allow the ANN to be trained effectively.