## 2 Materials and Methods
### Deep Learning (DL) Models
#### 2.3.1 Convolutional Neural Networks (CNNs)  
CNNs are advanced neural network architectures tailored for processing structured grid data such as images or time series. They comprise several layers, including convolutional, pooling, and fully connected layers, employing convolutions to autonomously identify and capture significant features from the input data. This enables CNNs to excel in pattern recognition and classification tasks while preserving spatial relationships within the data [48]. The learning process in CNNs unfolds through several key stages. It commences with convolutional layers, where adaptable filters slide over the input image to discern features, resulting in feature maps that highlight where these features are present. These feature maps then undergo non-linear activation functions such as rectified linear unit (i.e., ReLU) to introduce complexity and facilitate the understanding of complex data relationships. Subsequently, pooling layers are introduced to reduce the spatial dimensions of feature maps, enhancing computational efficiency by retaining essential information while discarding less relevant details. After several convolutional and pooling layers, CNNs commonly incorporate one or more fully connected layers, enabling the model to perform classification or regression tasks based on the learned features. CNNs are trained through backpropagation, an optimization technique that iteratively adjusts the model's parameters to minimize the disparity between predicted and actual values. Optimization algorithms like stochastic gradient descent (SGD) or its variants (e.g., Adam) further refine the model's parameters by guiding them toward minimizing the loss function. This training process occurs over multiple epochs, allowing the model to progressively learn and enhance its feature representations [36]. The remaining part outlined two CNN architectures, 1 DTempCNN and 1 DSpecCNN. The 1 DSpecCNN model extracts expert-free temporal and spectral features, focusing on spectral features, whereas 1 DTempCNN crafts expert-free temporal and spectral features, focusing on temporal features. One-dimensional temporal CNNs (1 DTempCNNs)  
The 1 DTempCNN architecture is designed to capture temporal dynamics in time series data by applying convolutional filters along the temporal dimension of Sentinel-2 satellite imagery. Each temporal observation is treated as a separate input, allowing the network to exploit sequential patterns related to crop development and environmental changes. By focusing on temporal dependencies and variations, the 1 DTempCNN aims to extract features indicating seasonal and phenological shifts essential for distinguishing crop types. This architecture enhances the model's ability to recognize time-dependent features. One-dimensional spectral CNNs (1 DSpecCNNs)  
The 1 DSpecCNN architecture is intended to extract features from Sentinel-2 imagery by applying convolutional filters over the spectral dimension of Sentinel-2 satellite imagery, representing 10 distinct bands. This approach leverages spectral diversity to identify subtle differences in land cover and crop types. The 1 DSpecCNN captures unique features, such as reflectance variations, that indicate specific vegetation or land characteristics by focusing on the spectral dimension. Long Short-Term Memory (LSTM)  
RNNs are a type of ANN uniquely designed for processing sequential data. Their primary strength lies in their ability to understand and learn patterns within sequences, making them highly suitable for tasks such as time series data. LSTM, one of the most common RNN architectures, known for achieving state-of-the-art results in sequential data tasks, excels in capturing long-term dependencies. Its architectural design features a memory cell that retains current states across sequential instances, along with non-linear dependencies regulating the flow of information into and out of the cell [49]. The learning process in the LSTM architecture involves several stages.