Ljubomir and Ognjen: Favicon GAN

Among the lectures we heard during PSIML, the Generative Adversarial Network (GAN) lecture caught our attention the most. GANs were invented only a few years ago and are giving impressive results in image generation (e.g. generating human faces so that one cannot tell if they are real or generated by GANs).

The way GANs work is very interesting, with two neural networks competing against each other while training. When first proposed, this concept was questioned. These facts fascinated us and made us want to learn more about GANs. That is why we choose generating new icons for websites (favicons), using the Favicon dataset to train our GAN as a project.

We used many architectures (Fully connected WGAN, Convolutive WGAN, Deeper convolutive WGAN, Fully connected conditional WGAN, Convolutive conditional WGAN) and we tried them on a simpler Fashion MNIST dataset first to see if they are working well. Since this was our first Deep Learning project, we came across many challenges and learned a lot while solving them.

The biggest challenge we came across was the instability of GANs. Mode collapse was very frequent when we were trying out new architectures. Another problem we have encountered was the diversity of the Favicon dataset, which caused problems in generating new images from some classes.

In the end we decided to switch to another, simpler dataset which gave us much better results. We managed to successfully generate images from only a few classes. End results were less than we expected but, nonetheless still decent considering from where we started.

During the project phase we have learned how to approach and solve complex problems. Also, we have learned to use Tensorflow and Keras for machine learning projects, work with scientific papers as a starting point and how to tune the hyperparameters of mentioned network architectures.