
Explore autoencoders and variational autoencoders, including intuitive and mathematical explanations, their applications in generative modeling, and training a neural network to generate new, realistic images.
Learn how autoencoders use an encoder and decoder to compress data into a latent space, reconstruct it, and enable anomaly detection and new image generation via unsupervised learning.
Explore autoencoder applications across data compression, synthetic data generation, denoising, inpainting, super resolution, image manipulation, drug discovery, voice style transfer, and text to speech.
Implement an autoencoder with encoder and decoder neural networks using PyTorch in Google Colab, training to reconstruct inputs from a latent space.
Build a training loop for a variational autoencoder, training an encoder and decoder with Adam optimizers, tracking mean squared error loss and progress with tqdm.
Examine how a variational autoencoder compresses a 512×512 image into a four-value latent vector Z, reconstructs it with a decoder, and compare decoder parameters to latent storage.
Load the MNIST dataset and train an encoder decoder on 28x28 images with mini-batches to compress and reconstruct digits, illustrating amortization by storing only the decoder for new inputs.
Explore the latent space Z of test images by encoding, then visualize a 2D t-sne embedding to observe digit label clustering and interpolation, before introducing variational autoencoders.
Explore how variational autoencoders use an encoder to model P(Z|X) as a Gaussian with a mean and log variance, and a decoder to reconstruct X with a KL regularizer.
Explore a PyTorch implementation of a variational autoencoder, including encoder‑decoder networks, reparameterization, KL divergence, and training on 0‑1 normalized data with a 2‑D latent space.
Wrap up the variational autoencoders discussion and invite constructive feedback to improve this course, while noting interest in a follow-up autoencoders course.
In a world of increasingly accessible data, unsupervised learning algorithms are becoming more and more efficient and profitable. Companies that understand this will soon have a competitive advantage over those who are slow to jump on the artificial intelligence bandwagon. As a result, developers with Machine Learning and Deep Learning skills are increasingly in demand and have gold on their hands.
In this course, we will see how to take advantage of a raw dataset, without any labels. In particular, we will focus exclusively on Autoencoders and Variational Autoencoders and see how they can be trained in an unsupervised way, making them particularly attractive in the era of Big Data.
This course, taught using the Python programming language, requires basic programming skills. If you don't have the required foundation, I recommend that you brush up on your skills by taking a crash course in programming. Also, it is best to have basic knowledge of optimization (we will use gradient optimization) and machine learning.
Concepts covered:
Autoencoders and their implementation in Python
Variational Autoencoders and their implementations in Python
Unsupervised Learning
Generative models
PyTorch through practice
The implementation of a scientific ML paper (Auto-Encoding Variational Bayes)
Don't wait any longer before jumping into the world of unsupervised Machine Learning!