Welcome to the CSOC ML Week 3, dear ML enthusiasts! This week we move to a different domain of computer vision, generative models, and see how convolutional neural networks can be used to solve the unsupervised problem of generating realistic images by modelling it as a supervised learning problem through GANs (Generative Adversarial Networks). We will be looking at the different types of GANs and their usage in image-to-image translation tasks.

                                    Images generated by Deep Convolutional Generative Adversarial Networks

                                Images generated by Deep Convolutional Generative Adversarial Networks

Previous Background

Before we get started it is important that you have completed these things:

  1. Neural Networks and Deep Learning(resources provided in Week 0 and 1).

  2. Convolutional Neural Networks course by Andrew NG(atleast till Week 3).

You must go through the above(if not already done) to understand the basics of Convolutional Neural Networks and its applications.

Let's Get Started

This week, we will get started with Transposed Convolutions as they are the building blocks of Generative Models. This medium article below will give you the intuition behind transposed convolutions.

Understand Transposed Convolutions

To understand UpSampling (another operation used in GANs), you can look into this video. (Optional)

Pooling and Upsampling - Week 2: Deep Convolutional GANs | Coursera

Generative Adversarial Networks

This week we will be learning about generative adversarial networks. The concept behind GANs is to take a dataset of unlabelled images, and try to generate new photorealistic high-quality images which appear as if they are from the original dataset itself. They can also be used to generate images with different styles.

Components of GANs:

  1. Generator - This is the component of GANs that is used to generate images. It needs to be trained so that the it is able to produce high quality images.
  2. Discriminator - This is the component of GANs which helps the generator learn. It is a simple image classification model which is trained to differentiate between the fake images generated by the generator and real images obtained from the dataset.

The goal of the generator is to fool the discriminator into believing that the fake images it produces are actually from the original dataset. You can go through the article below to understand the intuition behind the

A Gentle Introduction to Generative Adversarial Networks (GANs) - Machine Learning Mastery