Generating New Vacation Spots

Introduction #

Generative Adversarial Networks (GANs) are a relatively new idea in computer science. The idea is that you have a system of two neural networks that are placed in a zero-sum game. One acts as a generator which creates images and the other acts as a discriminator which evaluates the images as real or fake. Essentially you are exploring the space of images that will result in a classification of a neural network and determining the “realness” or “fakeness” of these images. The example that is most often used to explain this idea would be the counterfeiter example.

These images are from Machine Learning is Fun Part 7: Abusing Generative Adversarial Networks to Make 8-bit Pixel Art

You begin by wanting to create a counterfeit bill. The generator creates a bad fake.
1_z5kZ1oJYt9Ld5rGYPAjx5A.png

Then the discriminator evaluates the fake.
1_J2hXB7rdc9Tc5uhW0FVqIQ.png

This results in the generator creating better fakes because of the feedback loop between them.
1_OcEeuRBS5-dNCg60l52m8Q.png

The goal being after hundreds of epochs eventually a realistic looking bill will be created.
1_tNs5-ymkehhOmQ34qFPmGg.png

The goal of this project to generate realistic looking vacation spots.
Screen Shot 2018-05-08 at 10.38.21 AM.png

Practical Applications #

The goal of this project is to create possible images for a new vacation spot that meet my aesthetic criteria. Given images of beaches, mountains, and landscapes the hope is that I will find the perfect location to spend time after I retire. When I retire at the age of 65, I would like to relax and enjoy having some time off away from work. This is designed for people looking for original places to visit that will challenge their imagination.

island.jpg

If this works, we would be able to move to apply this to different industries. In the media, if we are able to feed images of fictional characters that children enjoy it is possible to generate novel characters that evoke the same emotions.

There are many real life applications to GANS. For instance estimating CT scans from MRI scans. (Dong Nie, et. al., Medical Image Synthesis with Context-Aware Generative Adversarial Networks, 2016)

There has been in work in Deep Convolutional Generative Adversarial Networks (DCGANs). Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks.
Some code referenced in the paper. Bedrooms
The work discusses networks on images and generating fake images from the generator. This project is applies the same concept to landscape datasets.

Approach #

Data Selection: Vacation Spots #

I hand selected 1676 images of my dream vacation spots from Flickr of possible vacation spots and pre processed the images. For this initial test I scaled each image to 300px x 300px.
7131435005_d8fb3826e0_z.jpg8582357266_0d5d103f7e_b.jpg8110533437_a467d3325b_b.jpg

Then using a pretrained DCGAN model, I began training the GAN.

Screen Shot 2018-05-08 at 11.40.31 AM.png.

Screen Shot 2018-05-08 at 11.40.40 AM.png

Implementation and Analysis #

V1 - 100 Flickr Images - 300px x 300px #

Epoch 0 #

fake_samples_epoch_000.png

Epoch 1625 #

fake_samples_epoch_1625.png

Epoch 1838 #

fake_samples_epoch_1838.png

Real Samples #

real_samples.png

Video Vacation Spots V2 #

V2 - 1676 images - 1200px x 1200px #

Epoch 0 #

fake_samples_epoch_000.png

Epoch 1143 #

fake_samples_epoch_1143.png

Real Samples #

real_samples.png

Video Vacation Spots V2 #

Conclusions #

This project is an interesting introduction to Generative Adversarial Networks. The images created by the GAN resemble the real images passed in. There are improvements when adding more images and using higher quality images.

The most difficult part of the project was the data collection. Downloading large datasets of landscapes requires a high amount of bandwidth and memory to store the images.Training the GAN is difficult and to create higher resolution images would take a longer amount of time. It required constant tuning. Overall this is an extremely project to see how game theory can influence computer science.

 
7
Kudos
 
7
Kudos

Now read this

Draft Risk Taking/Reflection

Monday June 6, 2016 I’m considering today as a life event. It feels like a turning point in my life. Not because today was the day I decided to do something but because today was the day I realized I could keep doing something. That... Continue →