## 2 Materials and Methods
### CEEMDAN-CNN-ATT-LSTM Model  
Figure 8 presents a hybrid achitecture for solar radiance forecasting that combines CNNs, LSTM networks, and an ATT for solar irradiance forecasting. This combination leverages the strengths of each component: CNNs for spatial feature extraction, LSTMs to capture short-term temporal dependencies, and an ATT to extract long-term patterns from the input sequence. Our proposed CEEMDAN-CNN-ATT-LSTM model employs a carefully designed architecture with specific hyperparameters to optimize its performance. The CNN encoder consists of three sequential 1D convolutional layers. The first convolutional layer has 256 filters, the second 128 filters, and the third 256 filters, each with a kernel size of 3 and a padding of 1 to preserve the input size. Batch normalization is introduced after each convolutional layer to stabilize and speed up training. In addition, dropout regularization with a specific probability is applied after each layer to avoid overfitting. After the last convolutional layer, a ReLU activation function is applied to introduce nonlinearity. The goal of this setup is to extract spatial features from the input data while maintaining local temporal dependencies. The LSTM component includes two stacked LSTM layers with 256 hidden units each. A dropout regularization with a rate of 0.2 is applied between the layers to mitigate overfitting and improve generalization. The outputs of the LSTM layers are normalized using layer normalization to stabilize the training. For ATT, eight attention heads were employed, each with a projection dimension of 64. This design allows the model to focus on different parts of the input sequence simultaneously, effectively capturing both short- and long-term dependencies. Positional coding is added to maintain temporal order within the input sequence, ensuring that the model correctly interprets the sequential nature of the data. The final dense layer consists of 128 units, followed by a single output unit with a sigmoid trigger function to produce normalized forecasting. This ensures that the output is limited to a range suitable for forecasting solar irradiance. The model input is the sequence of irradiance data preprocessed using the CEEMDAN decomposition. In addition to irradiance, variables such as temperature and air humidity are included. Mathematically, the input \(x\) is a tensor \(x\in\mathbb{R}^{q\times n}\), where \(q\) is the sequence length (number of time points) and \(n\) is the number of features (in this case, 19 features). The input shape is \((batch\_size,q,n)\). Three cascaded 1D convolutional layers are applied in the encoder, each using filters to extract local features from the input sequence. Each convolutional layer's input \(x\) consists of the irradiance and other meteorological variables for each time step. The convolution operation is expressed in Equation (26). \[\text{Conv\_Out}_{l}=ReLU(W_{conv_{l}}*x+b_{conv_{l}}) \tag{26}\]  
Figure 8: Architecture of the proposed model. where Conv_Out\({}_{l}\) is the output of the \(l\)-th convolutional layer, \(W_{conv_{l}}\in\mathbb{R}^{k\times n\times m}\) are the weights (with \(k\) being the kernel size, \(n\) the input feature dimension, and \(m\) the output feature dimension), \(b_{conv_{l}}\in\mathbb{R}^{m}\) are the biases, and \(*\) denotes the convolution operation. The ReLU activation function introduces non-linearity to the output, allowing the model to learn complex patterns in the data. Following each convolutional layer, average pooling is applied to reduce the dimensionality of the feature maps and prevent overfitting. This operation is defined in Equation (27). \[\text{Pooled\_Out}_{l}=\frac{1}{n_{pool}}\sum_{i=1}^{n_{pool}}\text{Conv\_Out} _{l,i} \tag{27}\]  
where Pooled_Out\({}_{l}\) is the pooled output from the \(l\)-th layer, and \(n_{pool}\) is the pooling window size. After pooling, batch normalization is applied to standardize the outputs, as shown in Equation (28).