# Algorithms for Plant Monitoring Applications: A Comprehensive Review
## 2 Materials and Methods
### Algorithm Classification  
Since different typologies of algorithms were taken into consideration, in this section, we list the macro groups that we identified for their classification:  
* Machine learning;
* Clustering;
* Deep learning;
* Optimization. In the \"machine learning\" group, we classified all models and meta models (ensembles) that implement supervised and semi-supervised algorithms. Models, once trained on a given labeled dataset, can be used to solve classification or regression problems. Because of the huge amount of predictors, to limit acronym pollution, we considered algorithms with different model specializations as a single one; e.g., the K-Nearest Neighbors Regressor and the k-Nearest Neighbors Classifier are reported as the same algorithm. In the same way, variants based on different kernels or likelihood distributions were grouped under the same label. Meta models are estimators that combine the prediction of several base models,  
Figure 6: Flow diagram applied to paper selection. The numbers show the outcomes of each refinement. (blue): number of papers advanced to the next phase; (red): number of papers discarded. trained in different ways, to produce a more robust and accurate prediction output, such as voting, bagging, boosting, and stacking. The \"clustering\" group is usually considered as part of the unsupervised learning methods. Therefore, it is generically included in the generic term \"machine learning\". However, given its historical importance in the context of agriculture, we have chosen to dedicate an appropriate section to discuss papers using these algorithms. These methods are used to gather together unlabeled data, whose similarity is estimated as the distance between samples of a given dataset. Many methods and metrics are proposed in the literature to estimate this distance, especially when classic Euclidean distance cannot be calculated, as in the case of non-flat manifolds. This group is often used in hyper-spectral image analysis or as an alternative to pixel-based threshold algorithms [15]. The \"deep learning\" group is less simple to define, as it sometimes overlaps with classic machine learning. A good starting point is to include neural networks with a fair amount of hidden layers, trained with the back-propagation algorithm [16]. Occasionally, among the inspected papers, the network architecture details are not clearly stated; this is especially true for Multi-Layer Perceptron (MLP). Indeed, this particular algorithm is alternatively referred as machine learning or deep learning, depending on the number of hidden layers. To avoid confusion, in this review, MLP was always considered as part of the deep learning group. From the implementation side, some authors define their own architecture, while others prefer predefined ones, especially in the computer vision field using Convolutional Neural Network (CNN). A classic example is given by [PERSON] [17]. These models are convenient, since they are relatively easy to deploy and test, without the need to redefine from scratch the whole network architecture, an operation that can be quite challenging. Furthermore, a modern trend is to exploit transfer learning techniques on models pretrained on a correlated task, especially when the available dataset is not big enough to provide sufficient generalization. These methods usually freeze part of the network, allowing for a more efficient training on smaller and/or more specific datasets. Finally, attention was given to modern architectures such as transformer [18]. The \"optimization\" group includes algorithms used to solve a constrained optimization problem. Among these, we include heuristics and meta-heuristics, such as Genetic Algorithm (GA), used to find a suboptimal solution, usually employed when the exhaustive search of the solution space is infeasible. These methods are often used as backbone for higher level algorithms. For example, Stochastic Gradient Descent (SGD), with its several variants, is widely used in the back-propagation method [16].