## 3 Material and Methods
### GAN Overview
Hence, it is quite important to experiment with different GAN architectures and their hyperparameters to find the best model for a specific dataset and task. Techniques such as hyperparameter tuning and architecture experimentation can help identify the optimal GAN architecture and hyperparameters for a given task. If the generator is shallow in terms of layers, it may not be able to capture the complexity of the data distribution, resulting in low-quality generated data samples. On the other hand, if the generator is too deep or complex, it may suffer from training instability issues, such as mode collapse or vanishing gradients, which may lead to difficulties in generating high-quality samples. Similarly, if the discriminator is too shallow, it may not be able to distinguish between real and fake samples, whereas if it is too deep, it may cause overfit issues during the training stage and consequently reduce the diversity and quality of the generated samples. The present study focuses on comparing two different GAN architectures, one of 6 layers and the other of 8 layers both for the generator and the discriminator, for varying numbers of epochs. The aim of this comparison is to discover the optimal performance and draw conclusions about the combination of the parameters considered above (number of epochs and different GAN architectures). Tables 5 and 6 depict the outputs of the generator and the discriminator, respectively, for the suggested 6-layer GAN architecture. To create the generator model, the sequential API was used, which allowed stacking multiple layers in a sequential manner. As presented in Table 5, the generator model consists of (a) an input layer that accepts scaled, randomly generated noise of the desired size, followed by (b) four hidden layers activated by the \"ReLU\" function and (c) an output layer that uses a \"linear\" activation function and has the same dimension as the preprocessed dataset, which comprises eight variables, as detailed in Section 3.2. Moving on to the discriminator model, Table 6 provides an overview of its structure. The discriminator, itself, is also implemented as a sequential model and consists of six dense layers. The first five layers use the \"ReLU\" function for activation, while the final layer uses the \"sigmoid\" function to classify input samples as either true (legitimate) or false (malware). In order to improve the model's accuracy, a dropout rate of 20% was applied to both the visible (or input) and the four hidden layers of the discriminator model. The dropout rate was selected through experimentation and evaluation procedures. Various dropout rates were tested during the model training process, and the rate of 20% was found to strike a balance between preventing overfitting and preserving the model's ability to learn relevant patterns in the data. This specific dropout rate was chosen based on empirical evidence and its performance in achieving satisfactory results in terms of accuracy and generalization. The generator and the discriminator model for the 6-layer architecture are presented in Figure 5.  
Tables 7 and 8 illustrate the models of the 8-layer GAN architecture. The generator model, as shown in Table 7, is constructed using the sequential API and comprises (a) an input layer that accepts scaled, randomly generated noise of the desired size, followed by (b) six hidden layers activated by the \"ReLU\" function and (c) an output layer whose activation function is \"linear\" and matches the dimension of the preprocessed dataset. Similarly, Table 8 outlines the output of the discriminator model. The discriminator, itself, is a sequential model, consisting of eight dense layers. The first seven layers use the \"ReLU\" function for activation, while the final layer uses the \"sigmoid\" function to classify input samples as either true (legitimate) or false (malware). To enhance the model's accuracy, a dropout rate of 20% was applied to both the visible (input) layer and the six hidden layers of the discriminator model.