This code repository is a culmination of my undergraduate thesis work at the University of Edinburgh, where I explored the intricacies of Generative Adversarial Networks (GANs) and proposed possible solutions for common training and evaluation difficulties. My goal was to understand GANs better and share my findings with the community.
The implementations of GANs in two low-dimensional examples were a valuable learning experience for me, and I hope it would be beneficial for others as well. I proposed a GAN to approximate the normal distribution and built an intuition of the inner workings of GANs. Using a rose figure, I visualized the failure modes of GANs, including mode collapse. I attempted to avoid mode collapse using one-sided label smoothing and proposed a unique method to avoid mode collapse by sampling from the 2D-projection of samples on the surface of a sphere. Though these methods are not necessarily new or groundbreaking, they were a great learning experience for me and I hope that it could be useful for others.
This repository is a humble offering of my understanding and findings in GANs and I welcome any feedback or suggestions for future work. I believe that by sharing my work and learning from others, we can push the boundaries of what is possible with GANs.
- Includes implementation of GANs in low-dimensional examples
- Proposes new solutions for common training and evaluation difficulties
- Incorporates novel techniques for improved training stability and higher quality generated samples
- Visualizes failure modes of GANs and proposes new solutions
- Includes implementation of a new evaluation metric for measuring generated sample quality that can be used for other GAN models
- Serves as a personal demonstration of my understanding and findings in GANs and their potential applications
- Offers opportunities for future research in the field of GANs that can improve the current state of the art.
- Includes detailed comments and explanations for better understanding of the code and GANs in general.
- Code is well organized and easy to follow for implementation of similar projects.
- The repository also includes a detailed report of my research and findings, to provide further understanding of the concepts behind the code.
The report repository for this project can has been archived.
A pdf of the compiled report can be found here.