## 2 Materials and Methods
### Wasserstein Generative Adversarial Networks  
A GAN is an advanced machine learning tool for creating realistic objects. It comprises two neural networks, the generator and the discriminator, engaged in a competitive game [30]. The generator generates data resembling originals, while the discriminator identifies fakes. Through training, both networks improve until the generated objects are indistinguishable from originals [30]. WGANs address stability and convergence issues in training by using weight clipping to enforce a 1-Lipschitz constraint. This constrains network weights, promoting smaller, more stable updates and enhancing convergence. Compared with traditional GANs, WGANs use the Wasserstein distance for a more meaningful measure of similarity between real and generated data distributions [25].  
It is critical to recognize that WGANs can capture complex data distributions (shapes) and generate samples that closely resemble real data, whereas, for example, a normal distribution generates random samples based on a specified mean and standard deviation without necessarily capturing the underlying structure of the data. Essentially, WGANs aim to learn the underlying data distribution and generate samples that adhere to it, whereas a specific distribution (e.g., normal) can only provide random samples based on the predefined parameters (mean and variance). Furthermore, the flexibility of GAN architectures plays a critical role in their application. Both the generator and discriminator, within a GAN, can be customized to accommodate specific shapes and dimensions of input and output data. This adaptability stands in stark contrast to bootstrapping, which, as a resampling technique, is used primarily to estimate the distribution of a statistic over a sample and maintains the exact same underlying distribution and characteristics as the original dataset. This inherent adaptability of GANs makes them suitable for a wide range of data types and formats. In our methodology, we exploit this flexibility to ensure that our GAN model is optimally designed to handle the specific characteristics of the data we aim to generate and analyze.  
Figure 3 illustrates the operation of WGANs; initially, the generator takes random noise as input and produces an object, such as a value or an image. Subsequently, the critic evaluates both the real object and the generated one to discern between real and fake. The feedback from the critic is then used to update the generator, iteratively improving its ability to generate realistic objects. The goal is for the generator to create objects that are indistinguishable from real ones, ultimately achieving a state where the critic cannot differentiate between real and generated objects. The image labeled as a \"real image\" in Figure 3 can be substituted with original data. Using the \"generating image\" (generated data), the discriminator (critic) can then determine whether to classify it as real or fake.  
In the adversarial modeling framework, both generator and discriminator models use multilayer perceptrons. The generator \(G\) maps noise z to data space, while the discriminator \(D\) distinguishes between real data and generated data \(G(z)\). During training, \(D\) learns to maximize the probability of correctly classifying samples, while \(G\) learns to minimize the probability of being classified incorrectly. This process forms a two-player game where \(D\) aims to maximize and \(G\) aims to minimize the function (Equation (1)) [20]:  
\[V(D,G)=E_{x\sim p_{data}}(x)[logD(x)]+E_{z\sim p_{z}}(z)[\log(1-D(G(z)))] \tag{1}\]  
In simpler terms, \(D\) tries to tell real from fake, and \(G\) tries to generate data that fools \(D\), resulting in a balance between the two networks.