
Learn to maximize your udemy learning by navigating the main video player, using playback speed, taking notes, and leveraging the q&a and captions to deepen understanding.
You can download all course code files from the attached zip, or from my github site (same materials).
Learn how artificial neural networks transform inputs into outputs using simple math, weights, biases, and non-linear activations. See how backpropagation tunes these bricks into powerful deep learning models.
Apply an experimental science approach to deep learning by running parametric experiments. Vary learning rate and epochs, measure model accuracy, and assess feasibility and generalizability.
Explore the math prerequisites of deep learning and implement them in NumPy and PyTorch, with practical Python examples in linear algebra, statistics, and back-propagation.
Explore the dot product, the core operation in deep learning, defined for vectors or matrices of the same shape, and implemented with NumPy and PyTorch in Python.
Explain the softmax function and its role in deep learning, demonstrate implementing it in NumPy and PyTorch, and show how outputs form probabilities that sum to one.
Explore sampling variability in deep learning by comparing random samples to the population mean, illustrating how law of large numbers and random sampling improve model generalization and reduce overfitting.
Explore how seeding NumPy and PyTorch enables reproducible randomness, controlling initial weights and sharing code, while recognizing when different initializations prevent the local minimum.
Learn the product rule and chain rule for derivatives of interacting functions, with practical PyTorch examples and Python implementations to support understanding of gradient descent in deep learning.
Explore how gradient descent uses derivatives and the learning rate to minimize the loss function in deep learning, adjusting weights to reduce errors and approach the minimum.
Implement gradient descent in one dimension in Python with numpy and matplotlib, and explore how learning rate and training epochs affect convergence to the 0.5 minimum.
Convert gradient descent to gradient ascent in Python code for 2d problems by flipping the gradient sign. See how these methods direct the trajectory toward local maxima.
Explore vanishing gradients and exploding gradients, and learn why they hinder gradient descent in deep learning, with strategies like residual networks, batch normalization, and regularization to prevent them.
Google Colab's revision history lets you view and restore earlier notebook versions, compare changes, and undo modifications using the file revision history and its dual-panel view.
Explore the geometric view of neural networks and the perceptron, visualizing two-input feature space, separating hyperplanes, and how gradient descent learns weights for binary and continuous predictions.
Understand how simple regression relates to the perceptron, then implement a PyTorch regression model to predict a continuous y from x using gradient descent and mean squared error.
Vary the regression slope m from -2 to 2 in 21 steps and train a deep learning model; compare mean squared error loss and the correlation between y and yHat.
Discover how removing nonlinear activation functions from hidden layers lets a linear model solve the qwerties classification problem with near-perfect accuracy, illustrating when linear solutions beat deep learning.
multilayer linear models collapse into one layer unless a non-linear activation or pooling is inserted between layers; non-linearity is essential to preserve multiple layers in deep learning.
Master multiclass classification with a multi-output neural network on the iris dataset, using a 4–64–64–3 PyTorch architecture and softmax cross-entropy training.
Take on a code challenge to merge two notebooks and build a three-group qwerties classifier in Python, training a two-input neural net with four hidden units and softmax output.
Explore generalization and its boundaries, identifying populations like adult humans, children, and animals, and how broader boundaries affect accuracy and training, dev, test sets with cross-validation.
Partition data into training, devset, and test sets using numpy and scikit-learn, then validate three-way splits for objective evaluation and reduced overfitting.
Explore implementing L2 regularization in PyTorch using SGD weight_decay, train on the Iris dataset, and analyze how varying L2 levels affects training and test accuracy.
Explore mini-batches in deep learning with PyTorch, distinguishing batch and mini-batch concepts, and understand how batching provides regularization, speeds training, and optimizes forward and back propagation.
Compare model parameters and meta parameters in deep learning, and see how architecture, hidden layers, units per layer, and optimization choices shape model performance.
Explore batch normalization in PyTorch by comparing models with and without BN on the wine quality data, using z-score normalization and highlighting training and test accuracy.
Explore how batch normalization between the input and hidden layers affects a small neural network classifying qwertys, revealing near-perfect accuracy and proving batch normalization can help even shallow models.
Explore deep learning with python by predicting residual sugar from wine features in a code challenge. Master mean-squared error, training vs. test splits, and correlation analysis.
Explore loss functions in PyTorch, including MSELoss, BCELoss, BCEWithLogitsLoss, and CrossEntropyLoss, and learn to implement a custom loss function using forward.
Build a three-category qwerty predictor from x and y coordinates using a PyTorch neural network; explore code variants, visualization, and per-category accuracy to sharpen deep learning intuition.
Look to published models for similar data, but integrate your own knowledge to avoid overfitting. Use informed random or targeted grid searches to navigate the high-dimensional metaparameter space.
Deep learning is increasingly dominating technology and has major implications for society.
From self-driving cars to medical diagnoses, from face recognition to deep fakes, and from language translation to music generation, deep learning is spreading like wildfire throughout all areas of modern technology.
But deep learning is not only about super-fancy, cutting-edge, highly sophisticated applications. Deep learning is increasingly becoming a standard tool in machine-learning, data science, and statistics. Deep learning is used by small startups for data mining and dimension reduction, by governments for detecting tax evasion, and by scientists for detecting patterns in their research data.
Deep learning is now used in most areas of technology, business, and entertainment. And it's becoming more important every year.
How does deep learning work?
Deep learning is built on a really simple principle: Take a super-simple algorithm (weighted sum and nonlinearity), and repeat it many many times until the result is an incredibly complex and sophisticated learned representation of the data.
Is it really that simple? mmm OK, it's actually a tiny bit more complicated than that ;) but that's the core idea, and everything else -- literally everything else in deep learning -- is just clever ways of putting together these fundamental building blocks. That doesn't mean the deep neural networks are trivial to understand: there are important architectural differences between feedforward networks, convolutional networks, and recurrent networks.
Given the diversity of deep learning model designs, parameters, and applications, you can only learn deep learning -- I mean, really learn deep learning, not just have superficial knowledge from a youtube video -- by having an experienced teacher guide you through the math, implementations, and reasoning. And of course, you need to have lots of hands-on examples and practice problems to work through. Deep learning is basically just applied math, and, as everyone knows, math is not a spectator sport!
What is this course all about?
Simply put: The purpose of this course is to provide a deep-dive into deep learning. You will gain flexible, fundamental, and lasting expertise on deep learning. You will have a deep understanding of the fundamental concepts in deep learning, so that you will be able to learn new topics and trends that emerge in the future.
Please note: This is not a course for someone who wants a quick overview of deep learning with a few solved examples. Instead, this course is designed for people who really want to understand how and why deep learning works; when and how to select metaparameters like optimizers, normalizations, and learning rates; how to evaluate the performance of deep neural network models; and how to modify and adapt existing models to solve new problems.
You can learn everything about deep learning in this course.
In this course, you will learn
Theory: Why are deep learning models built the way they are?
Math: What are the formulas and mechanisms of deep learning?
Implementation: How are deep learning models actually constructed in Python (using the PyTorch library)?
Intuition: Why is this or that metaparameter the right choice? How to interpret the effects of regularization? etc.
Python: If you're completely new to Python, go through the 8+ hour coding tutorial appendix. If you're already a knowledgeable coder, then you'll still learn some new tricks and code optimizations.
Google-colab: Colab is an amazing online tool for running Python code, simulations, and heavy computations using Google's cloud services. No need to install anything on your computer.
Unique aspects of this course
Clear and comprehensible explanations of concepts in deep learning, including transfer learning, generative modeling, convolutional neural networks, feedforward networks, generative adversarial networks (GAN), and more.
Several distinct explanations of the same ideas, which is a proven technique for learning.
Visualizations using graphs, numbers, and spaces that provide intuition of artificial neural networks.
LOTS of exercises, projects, code-challenges, suggestions for exploring the code. You learn best by doing it yourself!
Active Q&A forum where you can ask questions, get feedback, and contribute to the community.
8+ hour Python tutorial. That means you don't need to master Python before enrolling in this course.
So what are you waiting for??
Watch the course introductory video and free sample videos to learn more about the contents of this course and about my teaching style. If you are unsure if this course is right for you and want to learn more, feel free to contact with me questions before you sign up.
I hope to see you soon in the course!
Mike