
Clone the course code from GitHub with git clone, avoid forking, and use the eminence dataset from Kaggle with the labeled file in a large files folder for hands-on learning.
Explore how this course fits into your deep learning studies by connecting linear and logistic regression with supervised and unsupervised concepts like backpropagation, softmax, momentum, and clustering.
Pca stands for principal components analysis and helps transform high-dimensional data into useful features for downstream algorithms, and also enables visualization in two or three dimensions.
Learn how PCA reduces dimensionality in natural language processing by capturing redundancy and correlation in text data, with practical theory and code.
Apply PCA to decorrelate features and enable a gaussian naive Bayes classifier to model p(x|y) and p(y) using Bayes' rule, improving handwritten digit classification.
Compare greedy layer-wise autoencoder pre-training with pure backpropagation in unsupervised deep learning using Python, showing faster convergence with pre-training and the use of squared error and cross-entropy losses.
Explore unsupervised deep learning in Python with a one-line autoencoder that learns nonlinear latent representations, showing PCA objectives align with autoencoders and the benefits of greedy layer wise pre-training.
Explore how restricted Boltzmann machines use greedy layer-wise pre-training to uncover compact latent representations. See how they relate to auto encoders for removing redundancy and noise in data.
Demonstrates training an rbm with maximum likelihood, using the free energy to substitute intractable sums, and applies gradient descent with a positive phase for observed data and a negative phase for others.
Explore greedy layer-wise pretraining with restricted Boltzmann machines to overcome vanishing gradients and build supervised networks by stacking RBMs into hidden representations and adding a logistic regression layer with fine-tuning.
We use SVD to visualize the words in book titles. You'll see how related words can be made to appear close together in 2 dimensions using the SVD transformation.
Apply t-sne and k-means to identify clusters of related words from a tf-idf term-document matrix, visualize them in two dimensions, and inspect the resulting word clusters.
Explore how autoencoders and RBMs learn latent representations to fill in missing data and generate recommendations, using patterns in user ratings and genres to predict preferences.
Cover data preprocessing for movie ratings, converting IDs to zero-based indices and shrinking to active users and movies. Build lookup dictionaries and perform a train-test split, saving results with pickle.
Build and train a restricted Boltzmann machine for recommender systems in Python, detailing data loading, RBM class, training loop, free energy objective, and MSE evaluation.
Explore Theano basics, from symbolic variables and tensors to a computation graph, then build a cost, create shared variables, compute gradients automatically, and train with updates via a train function.
Ever wondered how AI technologies like OpenAI ChatGPT, GPT-4, DALL-E, Midjourney, and Stable Diffusion really work? In this course, you will learn the foundations of these groundbreaking applications.
This course is the next logical step in my deep learning, data science, and machine learning series. I’ve done a lot of courses about deep learning, and I just released a course about unsupervised learning, where I talked about clustering and density estimation. So what do you get when you put these 2 together? Unsupervised deep learning!
In these course we’ll start with some very basic stuff - principal components analysis (PCA), and a popular nonlinear dimensionality reduction technique known as t-SNE (t-distributed stochastic neighbor embedding).
Next, we’ll look at a special type of unsupervised neural network called the autoencoder. After describing how an autoencoder works, I’ll show you how you can link a bunch of them together to form a deep stack of autoencoders, that leads to better performance of a supervised deep neural network. Autoencoders are like a non-linear form of PCA.
Last, we’ll look at restricted Boltzmann machines (RBMs). These are yet another popular unsupervised neural network, that you can use in the same way as autoencoders to pretrain your supervised deep neural network. I’ll show you an interesting way of training restricted Boltzmann machines, known as Gibbs sampling, a special case of Markov Chain Monte Carlo, and I’ll demonstrate how even though this method is only a rough approximation, it still ends up reducing other cost functions, such as the one used for autoencoders. This method is also known as Contrastive Divergence or CD-k. As in physical systems, we define a concept called free energy and attempt to minimize this quantity.
Finally, we’ll bring all these concepts together and I’ll show you visually what happens when you use PCA and t-SNE on the features that the autoencoders and RBMs have learned, and we’ll see that even without labels the results suggest that a pattern has been found.
All the materials used in this course are FREE. Since this course is the 4th in the deep learning series, I will assume you already know calculus, linear algebra, and Python coding. You'll want to install Numpy, Theano, and Tensorflow for this course. These are essential items in your data analytics toolbox.
If you are interested in deep learning and you want to learn about modern deep learning developments beyond just plain backpropagation, including using unsupervised neural networks to interpret what features can be automatically and hierarchically learned in a deep learning system, this course is for you.
This course focuses on "how to build and understand", not just "how to use". Anyone can learn to use an API in 15 minutes after reading some documentation. It's not about "remembering facts", it's about "seeing for yourself" via experimentation. It will teach you how to visualize what's happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you.
"If you can't implement it, you don't understand it"
Or as the great physicist Richard Feynman said: "What I cannot create, I do not understand".
My courses are the ONLY courses where you will learn how to implement machine learning algorithms from scratch
Other courses will teach you how to plug in your data into a library, but do you really need help with 3 lines of code?
After doing the same thing with 10 datasets, you realize you didn't learn 10 things. You learned 1 thing, and just repeated the same 3 lines of code 10 times...
Suggested Prerequisites:
calculus
linear algebra
probability
Python coding: if/else, loops, lists, dicts, sets
Numpy coding: matrix and vector operations, loading a CSV file
can write a feedforward neural network in Theano or Tensorflow
WHAT ORDER SHOULD I TAKE YOUR COURSES IN?:
Check out the lecture "Machine Learning and AI Prerequisite Roadmap" (available in the FAQ of any of my courses, including the free Numpy course)