GAN Course Introduction - Intuitive Intro To Generative Adversarial Networks
text
GAN Course Introduction - Intuitive Intro to Generative Adversarial Networks
Welcome to this course on Generative Adversarial Networks, otherwise known as GANs!
GANs are an amazing deep learning tool that we can use to create new data. This is in great contrast to many applications of deep learning that are used to classify existing data.
In this course, we'll start from the absolute basics by learning the fundamental building blocks of GANs. By the end of the course, we'll be implementing GANs in code to create cool, new data and see how it compares to real-world data.
Applications of GANs
GANs can be applied in a number of ways. One of their major applications has been in image generation.
This application alone is already utilized in a number of fields, such as art, advertising, video games, face filters, fashion, architecture, and design.
GAN use is not confined to imagery, however. Aside from imagery, GANs have also been applied to create audio, 3D models, and many other miscellaneous applications across fields and disciplines.
Example: This person does not exist
Let's explore an example of a very well known GAN called StyleGAN2 that has been used to generate images of human faces at thispersondoesnotexist.com.
The people shown in these photos literally do not exist! These images were created by a GAN and are not simply a re-creation of photos of existing people. The accuracy and realism of these images is totally mind-blowing!
Sometimes, though, we may be able to spot something out of place that alerts us to the fact that the image has been generated and is not of a real person.
We can see with this example that the glasses on the woman's face are not believable as they're not completely formed. We can also see that the earring on the right is pretty wacky as well.
Later in the course, we'll explore how exactly a GAN is capable of creating images. For now, let us get our first intuitive introduction to what a GAN actually is.
What is a GAN?
GANs originally came onto the scene in 2014 in a paper titled Generative Adversarial Nets developed by Ian Goodfellow and colleagues.
A GAN is made up of two artificial neural networks, a generator network and a discriminator network.
For now, we won't go into much detail about the architecture or technicalities of these networks, but rather, we'll first discuss the general intuition behind each of them. We'll dissect the technical details of these networks in a later episode.
The Generator Network
The first network of a GAN is called the generator. This network accepts input, and from that input, generates new data. The generator's objective is to create data that is realistic or perceived to be real.
Think about the images of faces that we just looked at. These faces were generated by a GAN and look super realistic. Even us humans, who are pros at identifying fellow humans, often fail at looking at these faces and identifying them as being generated or fake.
Note, we'll often interchange the words generated and fake when discussing data that was generated by the generator network of a GAN.
The Discriminator Network
The second network is called the discriminator. The discriminator's job is to look at the data created by the generator and attempt to determine if it is real or generated data.
The discriminator is actually just a binary classifier trained on labeled real and generated data, classifying the data as real or fake.
Again, we'll go into much of the technical details behind these tasks a little later.
GAN Course Overview
Now that we have the highest-level general understanding of a GAN, we'll pause to discuss what's in store for the course and check out the syllabus.
This course is jam-packed with a ton of info for anyone who is interested to learn about Generative Adversarial Networks. We take a multifaceted teaching approach where we learn GAN fundamentals from three different perspectives:
- Intuition
- Math
- Code
We'll start from the absolute basics by developing an intuition for the fundamental building blocks of GANs. Then we'll explore the math behind how GANs work, and by the end of the course, we'll be developing full GAN projects in code across two neural network APIs.
The entire course is completely self-paced, so you're free to take as little or as long as you'd like to move through and simmer on the material. Once you register, you'll have lifetime access to the course contents!
Course Prerequisites
Now let's discuss the prerequisites required for this course.
- Basic understanding of deep learning and neural networks
- Basic coding skills
- Basic Python experience
- Neural Network API experience (recommended, not required)
If you are brand new to deep learning, then it is recommended that you start with our Deep Learning Fundamentals course first, as we'll be building on these fundamental concepts to form our understanding of GANs.
The Deep Learning Fundamentals course will teach you everything you need to know to get acquainted with all the major deep learning concepts. You can then take your newly gained knowledge from that course, and come to apply it in this GANs course.
Later in the course, we'll jump into code projects to apply what we've learned about GANs.
We'll be going step-by-step through the code when we get there, but in regards to coding prerequisites, some basic coding skills and Python experience are needed.
It's also recommended, but not necessarily required, to have experience with a neural network API, like PyTorch or TensorFlow. You can check out our courses for these APIs to get acquainted with how they work before we implement GANs in code later in the course.
Course Resources
This course has plenty of resources to ensure your success. This is a premium course, and so to gain access to the contents, you must first register.
By registering for the course, you will unlock lifetime access to:
-
34
ad-free4K
video lessons -
100
pages of fully written corresponding lecture notes - Custom-made quizzes following each lesson
- Download access to all code files used in this course
- The deeplizard Discord server with exclusive access to the course channel
- Customized visual graphics and interactive demos created solely for this course
- Regularly tested and maintained code providing updates and fixes
For more detailed information about course resources and what you'll learn in the course, see the official course release blog.
How to register for the course
Registration consists of two steps: creating an account on deeplizard.com and purchasing the course.
- Create a deeplizard account.
- Click the Login link on the top right of any page of deeplizard.com.
- Click create account.
- Enter a valid email address and password.
- Enter the verification code sent to your email address.
- Purchase the course.
- Ensure you're logged in to deeplizard.com.
- Browse to the course page.
- Click the Enroll button.
- Agree to the Terms and Conditions.
- Enter your payment details. If you have a discount code, you may enter it here.
- Upon successful payment, the course will become unlocked, and you may view the full contents.
Course Syllabus
Now let us cover the syllabus for the course.
- Part 1: Generative Adversarial Networks - GANs Intro
- Section 1: GAN Components
- Intuitive Introduction to GANs
- The Adversarial Relationship in a GAN
- The GAN Discriminator - Discriminative Models
- The GAN Generator - Generative Models
- Section 2: GAN Training
- Upsampling Explained - How it's Used in GANs
- Interactive Upsampling Demo
- Upsampling Code Demo with Neural Network APIs
- Transposed Convolutions Explained
- Interactive Transposed Convolution Demo
- Transposed Convolution Code Demo with Neural Network APIs
- Binary Cross Entropy (BCE) Loss for GANs - Intuitive Introduction
- Binary Cross Entropy (BCE) Loss for GANs - Mathematical Introduction
- Binary Cross Entropy (BCE) Loss for GANs - The Minimax Game
- GAN Training Explained
- Part 2: GAN Code Project
- Section 1: Deep Convolutional GANs (DCGAN)
- DCGAN Introduction - Deep Convolutional GANs
- GAN Generator Input Code Demo
- DCGAN Project Intro - Prerequisites and Datasets
- DCGAN Project Setup - Google Colab Environment
- Section 2: DCGAN PyTorch Code Implementation
- Data Processing and Hyperparameters
- Build Generator and Discriminator Networks
- Evaluating GAN Training Performance
- Train DCGAN on MNIST
- Visualize Training Results
- Train DCGAN on Faces
- Section 3: DCGAN TensorFlow Code Implementation
- Data Processing and Hyperparameters
- Build Generator and Discriminator Networks
- Evaluating GAN Training Performance
- Train DCGAN on MNIST
- Visualize Training Results
- Train DCGAN on Faces
- Section 4: Code Demos for Additional Fundamental Topics
- GAN Input Code Demo - Reshaping and Projecting Data
- Inplace Operations Code Demo - Memory vs Data Preservation
- Computational Graphs for Neural Networks Code Demo
- Course Conclusion
Additional code demos will be inserted throughout the course to demonstrate the code implementation of the fundamental concepts covered in lessons. View a more detailed syllabus on the course page.
I hope you're excited to follow along with the course. Let's jump in!
quiz
resources
updates
Committed by on