Generative Adversarial Networks – Building and Applying GANs to Real-World Problems
This individual assessment focuses on building and understanding Generative Adversarial Networks (GANs) and applying them to real-world problems across different domains. The assignment is based on the GAN topics covered in Unit 5 and requires students to implement GAN models, analyse their behaviour, generate synthetic data and critically evaluate the quality of the generated outputs. The assessment consists of two main parts: building and understanding GANs from scratch using synthetic two-dimensional data, followed by applying GANs to three real-world application areas involving medicine, cybersecurity and creative artificial intelligence. Part 1 focuses on developing a practical understanding of GANs through implementation using PyTorch and synthetic 2D data. Students must first reproduce the sine-wave GAN demonstrated in the tutorial. They then create and model a new two-dimensional distribution, selecting from a 2D spiral, a mixture of Gaussians, or a noisy parametric curve defined as y = sin(2x) + 0.3cos(5x) + epsilon. Students must modify the GAN architecture, for example by changing the activation function or layer depth, and visually compare the original data distribution with the generated samples. This section is intended to reinforce understanding of the generator, discriminator, GAN training process and the effect of architectural choices on generated data. Part 2 addresses three real-world GAN applications. The first application concerns optical coherence tomography (OCT) retinal images using the OCTMNIST subset of MedMNIST. Students must explore the dataset, examine class distributions and sample images, build a ConvNet-based Deep Convolutional GAN (DCGAN) using PyTorch or TensorFlow/Keras, train the model and track generator and discriminator losses. Generated retinal images must be compared with real images both visually and quantitatively, using a performance measure such as the Fréchet Inception Distance (FID). An optional extension involves implementing a conditional GAN and demonstrating generation of images for specific classes. The second application focuses on cybersecurity using the preprocessed CICIDS2017 dataset containing DDoS and benign network traffic. Students must combine the relevant data files, explore the dataset and understand its features and class balance. A GAN must be developed to generate synthetic feature vectors rather than images. The model should be trained using benign and DDoS attack data, training loss curves should be monitored, and PCA or t-SNE should be used to visualise and compare real and generated feature distributions. The quality of the synthetic data should then be evaluated. An optional extension involves expanding the analysis to the full CICIDS2017 dataset and examining generalisation across different attack types. The third application focuses on Creative AI using the QuickDraw birthday cake category. Students must explore the birthday cake sketch dataset and implement a ConvNet-based GAN (DCGAN) to generate realistic birthday cake sketches. Generated sketches should be evaluated visually and quantitatively, including comparison with real examples and an appropriate metric such as FID. An optional extension involves generating samples from additional QuickDraw categories and discussing how model performance changes across different classes and levels of sketch complexity. The submission consists of both code and a written report. The code accounts for 60% of the assessment and must complete the required modelling tasks, present generated samples, compare generated and real data, use appropriate functions and include clear annotations so another user can understand the implementation. The report accounts for 40% and must be 6–8 pages. It should explain the analytical steps undertaken, justify the selected approaches, provide brief descriptions of the models used, interpret the results and include appropriate figures, evaluation metrics and academic references. The report should critically discuss why particular network architectures were selected rather than simply providing textbook definitions.
Read Model Answer →