# The Detection of Fake News in Arabic Tweets Using Deep Learning
## 4 Experiments and Results
### Experimental Setup  
Several experiments have been carried out to enhance the proposed deep learning model's effectiveness. All experiments were performed on Google Colab. Google Colab is based on Jupyter Notebook, a web-based environment, and runs Python source code entirely on Google's cloud servers. It provides popular Python libraries to implement machine learning algorithms [2]. Keras, a Python wrapper for TensorFlow, was used to implement the proposed model. The dataset was split into five equally sized sets using sklearn's KFold module. At each round of cross-validation, we kept one fold as the testing set, and the remaining folds were utilized for training. The training was performed for 40 epochs with a batch size of 64. Early stopping technology was employed during model training to obtain a more generalized model and reduce overfitting. The parameters for early stopping are as follows: the validation loss is the monitoring value, and the patience (number of epochs with no improvement) is set to 10. When the validation loss no longer improves, the training process will be terminated, and the model's weights are restored with the smallest validation loss. Table 4 shows a summary of the common parameters.  
To discover the best configuration of hyperparameters for the proposed models, randomly chosen experiments were conducted over crucial hyperparameters of a different values. Each experiment was examined using two deep learning models CNN and BiLSTM, combined with one of the five-word embedding approaches. Table 5 presents a list of hyperparameters and their experimental ranges for each of the deep learning architectures. In our proposed models, three types of layers construct the deep learning models: convolutional or BiLSTM layers, pooling layers, and dense layers. The hyperparameter-tuning process for the convolutional layer involves evaluating two parameters, namely the kernel size and the number of filters. The convolutional layer takes the contiguous sequence of features based on the kernel size as the input and performs the convolution operation to produce a feature map. The number of feature maps is specified by the number of filters. In the BiLSTM layer, we investigated the effectiveness of the number of neural units. In the dense layers, the number of neurons was also explored. Dropout was employed as a regularizer to keep the model from overfitting on the training data and make it generic by minimizing the number of trainable parameters in each iteration. The performance of the model was estimated using various dropout rates. In addition, various optimizers and learning rates were evaluated by the classification accuracy. The final configuration for the model's hyperparameters are chosen based on a subset that achieves the best performance on the testing set.  
\begin{table}
\begin{tabular}{c c} \hline \hline
**Parameter** & **Value** \\ \hline Epoch & 40 \\ \hline Batch size & 64 \\ \hline Data split & Cross validation (Five folds) \\ \hline Validation split & 0.1 \\ \hline Early stopping & Monitor = validation loss, patience = 10 \\ \hline \hline \end{tabular}
\end{table}
Table 4: Common parameters of the proposed model.