
Explore a comprehensive deep learning course with practical PyTorch and TensorFlow implementations, covering neural networks, CNNs, RNNs, autoencoders, GANs, transformers, and neural style transfer.
Follow a sequential study path through the course, avoid skipping lectures, and after each lesson code yourself using PyTorch and TensorFlow to achieve success.
learn how to use google colab to run python code for this course, benefiting from 15 GB free space, preinstalled packages, and free cpu and gpu with a gmail account.
Mount Google Drive in Colab, set the path to drive my drive / Introduction to Google Colab, upload folders, and run cells to read a CSV with pandas.
Mount the drive in Google Colab, set the working path, and read datasets and images, then display the image using matplotlib, enabling seamless image handling in deep learning projects.
Learn to read datasets from seaborn library using sns.load_dataset (iris) without mounting drives, and from Google Colab sample data using pandas.read_csv with a copied path (mNIST, California housing data).
Upload and organize course material on Google Drive for deep learning with PyTorch and TensorFlow, including unzipping archives and exploring supervised and unsupervised sections.
Learn Python basics and essential data libraries on Google Colab, using Google Drive access to run NumPy, pandas, seaborn, and matplotlib for data analysis and visualization.
Explore arithmetic in python using addition, subtraction, multiplication, division, exponent, modulo, and integer division, with soft coding via variables a and b, and mastering order of operations, all without libraries.
Master comparison operators and logic operators, including greater than, less than, equal to, not equal to, and, or; understand true/false outcomes and the difference between assignment and comparison.
Explore how conditional statements use if and else to control code execution. See how syntax uses colons and indentation, and how combining comparisons and logic operators forms conditions.
Learn to create and manipulate NumPy arrays, including 1D and 2D shapes, by importing NumPy as np, inspecting shape, size, and dtype, and locating max, min, and argmax/argmin indices.
Explore NumPy array creation and manipulation, including arange, linspace, and reshape. Generate zeros, ones, and identity matrices, and sample random numbers from normal, uniform distributions, and randint for integers.
Explore indexing and slicing with numpy arrays, including 1d and 2d examples, extracting elements, slices, last and second last items, and matrix substructures.
Plot and visualize data with numpy and matplotlib, generating x with linspace and y as a function of x. Explore customizing plots with color, size, labels, legends, and titles.
Learn to plot a sine wave and control axis limits, ticks, labels, and legends with Matplotlib. Enhance visuals with styles, grids, markers, and customizable backgrounds.
Learn to create and arrange subplots with matplotlib, apply tight layout for even spacing, and compare continuous and discrete sine waves using plot and stem.
Explore plotting and visualization with matplotlib, learning how rc parameters globally control line width, line style, and figure size across subplots, including x and y label sizing and sine-wave plots.
Explore python lists, their differences from numpy arrays, and how to create, index, slice, modify, and nest lists, including common methods like append, pop, reverse, and sort.
Learn to use Python for loops with range, indentation, and if statements to print digits and hello, generate even and odd numbers, and sum the first ten numbers.
Explore nested for loops in Python, detailing outer and inner loop execution, matrix generation with placeholders, and practical examples like a 3x6 matrix and a checkerboard.
Learn how the while loop executes until a condition is met, avoid infinite loops with an increment operator, and use break statements, with comparisons to for loops and nested cases.
Explore Python strings: create strings with quotes or str, convert numbers, index and slice from zero, understand immutability, and use methods like upper, split, capitalize, count, and find.
Format strings with the print function and the .format method. Fill curly brackets with values and explore index or alphabetic placeholders.
learn how dictionaries use keys to access values via key-value pairs and curly braces, unlike arrays that use numeric indexing, and explore items, keys, and values of different types.
Learn to create Python dictionaries with key-value pairs and access values using indexing. Explore nested dictionaries and extracting inner values from lists and multi-level structures.
Explore seaborn for data analysis and visualization using the tips dataset; inspect numerical features like total bill, tip, size, and categorical features, and visualize distributions with distplot.
Explore categorical data with seaborn by plotting count plots for day, sex, and smoker, and bar plots for average tip by day or by sex using the tips dataset.
Explore correlation analysis of numerical features in the Tips dataset using a correlation matrix, heat map, and scatter plots to link total bill, tip, and size.
Explore pandas essentials for manipulating tabular data: create data frames, read files, select columns, convert to numpy arrays, and add or drop columns and rows with inplace options.
Learn to manipulate a Pandas data frame using loc and iloc to access rows, columns, and intersections, insert and drop rows, replace values, and extract slices.
Generate a pandas data frame from a dictionary with name, region, sales, expenses, and loss values. Explain null values with df.info and isnull, and replacing question marks with numpy NaN.
Clean a Pandas data set by copying data, replacing nulls with 1000, and making permanent changes such as region with news and other columns with mean, median, or std.
Learn how to define and call Python functions using def, pass two or three inputs, perform addition and multiplication, call functions, and create no-argument hello functions.
Create and call Python functions, learn why return enables assignment to variables instead of using print. Implement a prime-checking function using range and modulo, illustrating loops and conditional logic.
Learn how to create classes in Python, define attributes and methods, and instantiate objects using self, init, and dot notation, illustrated with a boy and a sphere example.
Learn how tuples differ from lists, are immutable, and use parentheses (not square brackets); perform indexing, slicing, concatenation, and find min and max in Python.
Learn to create quick one-line python functions with lambda, compare with def, and explore examples for squaring numbers, first character extraction, adder, and a math expression.
Explore the Python map function, applying a Fahrenheit conversion to a centigrade list, with lambda usage and multi-list element-wise operations to transform iterables.
Discover how the Python reduce function compresses an iterable into a single value by applying a function, with examples for max, multiply, and add using a lambda.
Learn how to use Python's filter function to extract even numbers from a list and vowels from a list of alphabets, with practical numpy array examples.
Master how the zip function aggregates elements from two or more iterables into tuples, demonstrated with lists of numbers and letters and later unzipping and unpacking names, rolls, and marks.
Explore how the Python join function, a built-in tool, joins sequence elements with a separator, including empty, space, or any character such as #.
Explore the course prerequisites: data pre-processing, regression analysis, and logistic regression, with emphasis on normalization, standardization, regularization, gradient descent, and classification concepts essential for deep learning.
Explore data pre-processing essentials for deep learning with PyTorch and TensorFlow. Learn normalization, min-max scaling, standardization, handling missing values, categorical features, and feature engineering in Python across six projects.
Learn why data preprocessing matters in deep learning. Tackle missing values, noise, and uninterpretable data from sensors, and scale features with different magnitudes to improve model training.
Learn data preprocessing techniques, including normalization to a 0 to 1 range and min max scaling to any chosen range using the normalization equation with min and max values.
Learn to implement data normalization and min max scaling in Python for project one. Create and split a classification dataset with make_classification and train_test_split in Google Colab.
Learn data normalization and min max scaling in Python with train_test_split, fit and transform, and test-only transform to avoid data leakage, including 0–1 and -1–1 ranges.
Standardize data to align features with different units, outperforming normalization and min-max scaling. Use mean and standard deviation to transform features, for example across time, voltage, and meter-based measurements.
Learn to implement data standardization in Python with NumPy and scikit-learn's standard scaler on training data with a train-test split. Transform the test set and observe mean zero, unit variance.
Learn to preprocess data by handling missing values in a pandas data frame. Replace uninterpretable marks with NaN, then apply column-specific strategies using mean, median, and standard deviation.
Create dummy variables for categorical features with pandas get_dummies and drop the first column. Append them to the data, define X and y, and perform train/test split with standardization.
Develop feature engineering skills by generating features from existing data using polynomial features, exploring degrees one to three, and applying train-test split and standardization.
Explore feature engineering by window method in data pre-processing, creating new features from sliding windows, including the minimum, maximum, mean, and standard deviation, and updating the labels accordingly.
Explore regression analysis, from simple and multiple linear regression to polynomial regression, least squares and gradient descent, with cross validation and bias-variance trade-off managed by ridge, lasso, and elastic net.
Trace the origin of regression from the straight line, and see how slope and intercept enable a linear model to learn the x and y relationship and predict unseen inputs.
Define linear regression as a linear relationship between a feature and a target. Transform the linear model into the regression equation using weight w and bias w0.
Learn the requirements of a linear regression model and how it predicts salaries or house prices from new inputs like experience and area.
Discover simple linear regression with a single feature, where weight acts as the slope linking x to y, using a salary dataset and zero-bias or zero-weight cases.
Explore multiple linear regression, where the target depends on more than one feature, using weights to measure feature influence, a bias term, and practical examples like salary and sandwich ingredients.
Explore target values versus predicted values in a one-feature linear regression model, learn how prediction errors arise, and understand how zero error yields 100% accuracy.
Learn how to quantify prediction error with mean square error, convert error into a loss function, and apply a least square method to improve regression models.
Minimize the mean square error loss using the least square method to optimize weights and bias in a multiple linear regression model with y, x, and w matrices.
Solve a numerical least square method on a two-sample data set with one feature and salary target, using y, x, and w, yielding a weight of 10,000 and zero bias.
Learn the three key regression metrics: RMSE, MAE, and R-squared. See how to compute them from the errors, target and predicted values, and interpret RMSE, MAE, and R-squared.
Solve project one by implementing simple linear regression in Python on Google Colab, mounting drive, setting path, and visualizing a scatter plot to reveal a linear relationship.
learn to implement simple linear regression manually using the least squares method with numpy, including preparing x and y matrices and bias, then compare with sklearn.
Apply the least square method to build a linear regression, manually compute bias and weight, generate test data from training data, and evaluate with RMSE, MAE, and R square.
Learn multiple linear regression by generating a synthetic 1000-sample dataset with three informative features using sklearn make_regression, then split data and evaluate with RMSE, MAE, and R-squared.
Transform make regression data into a named data frame with research, salaries, infrastructure, and expenditure, then apply multiple regression and visualize feature influence on expenditure.
Learners perform multiple linear regression with salary, research, and infrastructure features to predict expenditure, including data extraction, train-test split, standardization, and coefficient interpretation.
Apply multiple linear regression in Python to predict yearly spend from features like average session length, time on app, website time, and membership length; evaluate with rmse and r-squared.
Explore gradient descent to minimize mean square error, update weights and bias iteratively, and overcome singularity and sample-size limits of the least squares method.
Implement gradient descent for simple linear regression in Python, validate with a one-feature dataset, and compare results to sklearn's least squares.
Apply gradient descent to a three-feature multiple linear regression, generated with make_regression, standardized, and evaluated against least squares using RMSE, MAE, and r square value.
Explore polynomial regression to fit curved data beyond straight lines, increasing degree to capture shapes such as sine waves, while balancing complexity and potential overfit.
Implement polynomial regression in python by transforming the experience feature into polynomial features and applying linear regression. Evaluate r-squared, rmse, and mae to identify the optimal degree for predicting salary.
Use cross-validation to evaluate models on limited data by splitting into k folds, such as five-fold or ten-fold, training on k-1 folds, testing on remainder, and averaging results across folds.
Implement five-fold cross validation in Python to evaluate a regression model, compare with a train/test split, and assess unseen data using root mean square error and mean absolute error.
Learn the bias-variance tradeoff in regression models, distinguishing high bias (underfitting) from high variance (overfitting), and how to balance them for better generalization.
Explore how regularization limits overfitting by penalizing large weights, promoting generalization to unseen data through L1 and L2 norms with a lambda term.
Learn how ridge regression, or L2 regularization, adds a squared penalty on weights to shrink large weights and reduce overfitting in noisy, correlated data, controlled by lambda.
Explore lasso regression and L1 regularization, which shrink weights toward zero to produce sparse models, especially under multicollinearity. Learn how lambda controls penalty, bias, and feature selection.
Compare ridge and lasso regression to show how ridge uses a square penalty to handle high correlation and noise while lasso uses an absolute penalty to create sparse models.
Learn how elastic net regularization blends lasso and ridge penalties, with the L1 ratio controlling their mix and parameters lambda and a/b shaping the penalty terms.
Explore ridge, lasso, and elastic net regularization in Python for regression analysis, with feature engineering via polynomial features and standard evaluation metrics.
Utilize grid search cross-validation to automatically select hyperparameters for regularized models by evaluating alpha (lambda), intercept, and max iterations, and for elastic net tune L1 ratio to find best parameters.
Explore grid search cross-validation in Python to optimize ridge, lasso, and elastic net models. Learn to tune alpha and fit intercept and compare performance.
Explore logistic regression as the shift from regression to classification, covering its definition, loss function, and limitations of linear regression. Evaluate with confusion matrix, metrics, and roc in Python.
Explain logistic regression as a probabilistic classifier in supervised learning, compare classification and regression, highlight discrete targets, and show how a 0.5 threshold determines predicted classes.
Examine the limitations of regression models for classification, showing they can yield invalid probabilities and misclassifications, and present logistic regression as a probabilistic alternative staying between 0 and 1.
Transform linear regression into a logistic regression model using the sigmoid function to produce probabilities between 0 and 1, enabling probabilistic classification with a 0.5 threshold.
Train a logistic regression model to estimate class probabilities for cancer using tumor size data. Learn data preparation, 2d reshaping, and using predict_proba and predict to classify a test sample.
Train a logistic regression on a make_classification dataset to generate 50 two-feature samples with two informative features and two classes. Use random_state 42 for reproducibility and validate predictions with predict_proba.
Explain constructing the logistic regression loss, using mean square error, and its convexity. Show how log terms appear, including simplified forms for y=1 and y=0 with gradient descent updating weights.
Learn to evaluate a logistic regression model with a confusion matrix, understanding true positives, true negatives, false positives, false negatives, and compute accuracy and type one and two errors.
Explore precision, recall, and F1 score alongside accuracy, all derived from the confusion matrix, to evaluate classifier performance and handle biased data.
Explore the ROC curve, its false positive and true positive axes, and how the area under the curve (AUC) indicates model precision and performance.
Explore evaluating a logistic regression model by computing accuracy, precision, recall, and F1 score, building a confusion matrix, and plotting a ROC curve with sklearn.
Learn to evaluate a logistic regression model with fivefold cross-validation on data generated with make_classification, and interpret accuracy, precision, recall, F1, and ROC AUC.
Demonstrates multiclass logistic regression on the iris data set with three classes, including data preparation, standardization, training, and evaluation with 100% accuracy, precision, recall, F1 score, and roc auc.
Explore logistic regression on the Titanic dataset, preparing the survived label. Drop irrelevant features and handle missing age values, then select class, sex, age, fare, and embarked.
Explore logistic regression on challenging data by handling categorical features with dummy variables, addressing multicollinearity, preprocessing with standardization, and performing a train-test split before model training.
Train a logistic regression model on challenging data, examining probabilities, class predictions, and accuracy. Preprocess data to address multicollinear features, null values, and categorical features, then interpret feature weights.
Apply grid search cross-validation to optimize logistic regression, tuning penalty, C, fit intercept, and solvers, and evaluate with classification report, confusion matrix, and roc curve on a dataset with two features.
Explore the foundations of neural networks and deep learning, from perceptrons and artificial neurons to weights, activation functions, forward and backward propagation, and the rise of deep learning with PyTorch.
Explore the perceptron as the neural network’s fundamental unit, combining inputs with weights and a bias to enable addition, averaging, regression, and classification.
Explore how perceptrons process features with weights and activation functions to produce neural network outputs and make binary decisions, exemplified by candidate selection.
Explore how neural networks learn through forward propagation to generate predictions and backward propagation to update weights and bias using gradient descent with a learning rate.
This lecture introduces deep learning, and the need for large data and gpu resources. It surveys models like VGG16, ResNet, LSTM, GAN, and transformers, with applications in face detection.
Explore why activation functions—sigmoid, tanh, ReLU, and leaky ReLU—are essential for neural networks, enabling non-linear learning and guiding where to add them in hidden and output layers.
Learn how a perceptron classifies boolean and gate data by learning a linear decision boundary with weights and bias, demonstrated on a 2d dataset.
Learn to classify with a perceptron using an or gate example in 2d. Use weights of 1 for x1 and x2 and a bias of -0.5 to separate classes.
Learn why activation functions are essential for neural networks to learn non-linear patterns, illustrated by the XOR gate, enabling non-linear classification beyond linear models.
Explore how to add activation functions to hidden and output layers in a neural network, enabling non-linear learning and aiding classification or regression, demonstrated with PyTorch.
Explore how the sigmoid activation function maps inputs to [0,1], its use in output layers for classification, and why it causes vanishing gradients in hidden layers.
Explore the hyperbolic tangent activation function, its [-1,1] range, unbiased mean, and how it centers hidden-layer data to speed learning, while facing vanishing gradient issues similar to sigmoid.
Compare the ReLU and leaky ReLU activation functions, showing how ReLU zeros negative inputs and preserves positives, while leaky ReLU adds a negative slope to maintain gradient flow in networks.
Explore loss functions, including mean square loss, cross-entropy loss, and the softmax activation, and learn how updating weights and biases reduces loss to improve regression and classification models.
Master the mean square error loss function, from calculating error to mean squared error, and its convex shape leading to a global minimum in neural networks for regression.
Explore cross entropy loss for classification in neural networks, including binary cross entropy and the role of the negative log, with ground truth y and predicted probability p.
Learn how the softmax function, an activation used with cross entropy loss, converts model outputs into probabilities summing to one for multi-class classification, and relates to sigmoid for two classes.
Course Contents
Deep Learning and revolutionized Artificial Intelligence and data science. Deep Learning teaches computers to process data in a way that is inspired by the human brain.
This is complete and comprehensive course on deep learning. This course covers the theory and intuition behind deep learning models and then implementing all the deep learning models both in Pytorch and Tensor flow.
Practical Oriented explanations Deep Learning Models with implementation both in Pytorch and Tensor Flow.
No need of any prerequisites. I will teach you everything from scratch.
Job Oriented Structure
Sections of the Course
· Introduction of the Course
· Introduction to Google Colab
· Python Crash Course
· Data Preprocessing
· Regression Analysis
· Logistic Regression
· Introduction to Neural Networks and Deep Learning
· Activation Functions
· Loss Functions
· Back Propagation
· Neural Networks for Regression Analysis
· Neural Networks for Classification
· Dropout Regularization and Batch Normalization
· Optimizers
· Adding Custom Loss Function and Custom Layers to Neural Networks
· Convolutional Neural Network (CNN)
· One Dimensional CNN
· Setting Early Stopping Criterion in CNN
· Recurrent Neural Network (RNN)
· Long Short-Term Memory (LSTM) Network
· Bidirectional LSTM
· Generative Adversarial Network (GAN)
· DCGANs
· Autoencoders
· LSTM Autoencoders
· Variational Autoencoders
· Neural Style Transfer
· Transformers
· Vision Transformer
· Time Series Transformers
. K-means Clustering
. Principle Component Analysis
. Deep Learning Models with implementation both in Pytorch and Tensor Flow.