## 2 Background Research  
### Conditional Generative Adversarial Networks and AC-GANs  
Generative Adversarial Networks (GANs) have been circulating in the machine learning community for the past several years. [PERSON] published the original idea in 2014 [23], and various additions to GANs have subsequently been used in many computing and machine learning-related areas. Compared to their counterparts that follow a similar concept of deep generative modeling, such as Variational Auto-encoders [24], GANs have been deemed superior in various aspects [25]. As explained in the original paper, the general structure of a GAN sets two models against each other to determine whether this process improves either of the models. One of the models, the Generator, tries to generate data that are as close to the original dataset as possible. The other model, the Discriminator, attempts to identify whether the data it receives are real. The process carried out in GANs is best explained by comparison with the \"Minimax Game\", i.e., using the Minimax Algorithm. The concept of a Minmax game is that there are two players; the maximizer tries to reach the highest score possible, while the minimizer attempts to reach the lowest score possible. In the case of GANs, the Discriminator continuously tries to differentiate the original data from the artificial data produced by the Generator, whether pictures, audio, or, ideally, any other type of data format. The Generator takes feedback from the Discriminator to improve its output and eventually generates data that the Discriminator cannot differentiate from the original data. A variation of GANs that is worth mentioning here is Conditional GAN (CGAN), first proposed by [PERSON] et al. (2014) [26]. What makes CGANs different is that the model is conditioned on a class label, where the provided label allows for control over the labels of the samples to be generated. In his paper, we use an extension of CGANs named Auxiliary Classifier GAN, introduced by [PERSON] et al. (2017) [27], to generate adversarial samples. In the case of CGANs, the Generator and Discriminator are conditioned on extra information y, where y is any auxiliary information, including class labels. ACGANs extend this idea further by adding an auxiliary classifier that allows the Discriminator to predict whether the image is real or fake and label the generated image as the target class provided to the Generator. Hence, the Discriminator maximizes the probability of correctly classifying the generated image and accurately predicting the class label of the generated image. The authors of [27] represented these two processes through the objective functions in Equations (1) and (2):  
\[L_{s}=E\left[\log P(S=real|X_{real})\right]+E\left[\log P(S=fake|X_{fake})\right] \tag{1}\]  
\[L_{c}=E\left[\log P(C=c|X_{real})\right]+E\left[\log P(C=c|X_{fake})\right] \tag{2}\]  
where \(L_{s}\) is the log-likelihood of the correct source and \(L_{c}\) is the log-likelihood of the correct class. An architecture similar to the one proposed in [20] is used to generate adversarial examples, with a modification made to the architecture to generate adversarial examples from all class labels on the MNIST and CelebA datasets for adversarial training, along with minor adjustments to better fit our objective. Recently, AC-GANs have seen through different modifications to improve their performance. Despite improvements over the vanilla GAN and other types of conditional GANs, research has shown that they are susceptible to various instability issues, as shown in [28; 29; 30]. The results of [PERSON] et al. (2021) [28] showed the most significant bump in performance by introducing an extension of the previously used cross-entropy loss cost function. This customized loss function, called the Data-to-Data Cross-Entropy Loss (D2D-CE), resolves the instability in the original AC-GAN when using the common cross-entropy loss function.