Hello, everyone, and welcome to this new and exciting session in which we shall dive into Image Generation.
So as you could see right here, this image was AI generated, but back in 2014, 2015, 2016, images
like this weren't yet to be generated using AI With advances in AI like the virtual auto encoders,
the gains, and even more sophisticated games like the W Gans pro Gans as our gans and cycle gans AI
algorithms have been trained to produce high quality images.
And today we even get much better results with the diffusion models.
That said, in this section, we shall treat the Variational auto encoders and the DC Gans.
And so at the end of the section you should be able to produce images like this.
Back in 2014, one of the best performing image generation models was this model you have right in front
of you.
That is the Variational auto encoder.
And the way this model worked was quite simple.
We had an encoder block which took in some input image and then generated this embeddings and now this
embeddings have an encoded information about the inputs could be used by the decoder.
To generate output images.
Nonetheless, by 2014, Ion Goodfellow came up with this idea of the gan, and the gan signifies generative
adversarial neural networks.
So here we have two neural networks here the generator G and the discriminator, where this G and this
RD that's the discriminator are both in some context where the generator is learning how to produce
images which look like those from the real data set or the training set.
And on the other hand, the discriminator is learning how to differentiate between real data like this
one and fake data produced by the generator.
If we consider the simple example here, you could see that we pass in some input noise.
We get this output.
And because this output doesn't look like the real data, the discriminator considers this as fake.
Whereas now for this other example, the output from the generator looks like the real data.
And so the discriminator sees this, or the discriminator is tricked by the generator to think that
this is real data.
So after updating the parameters of the generator and the discriminator such that we get to that point
where the discriminator no longer knows the difference between what is coming from the generator and
what is coming from the training set.
We now have this generator block which is able to take in random noise and generate outputs which are
similar to those from our training set.
And although this architecture was groundbreaking in 2014, 2015, today we have more advanced and better
models like the Style Gan.