
Overview of Machine Learning and areas of application
Examples of Supervised Machine Learning and introduction to linear regression, logistic regression, and neural network approaches to be discussed in this course.
Info about the course: the prerequisites, how best to learn from the material, course sections and information about the instructor.
Resources and set up (environment creation and Python package installation) for the course.
Demo of resources and set up of environment and packages and Jupyter notebook test.
Overview of Python demos in Section 2.
Overview of numpy functionality used in this course.
Jupyter notebook demo of numpy functionality used in the course
Exercises Section - see pdf file in Resources link
Overview of matplotlib functionality used in this course.
Jupyter notebook demo of matplotlib functionality used in the course.
Exercises Section - see pdf file in Resources link
This section gives an overview of matplotlib heatmap creation functionality used in this course.
Jupyter notebook demo of matplotlib heatmap creation functionality used in the course.
Exercises Section - see pdf file in Resources link
Overview of pandas functionality used in this course.
Jupyter notebook demo of pandas functionality used in the course.
Exercises Section - see pdf file in Resources link
Overview of unittest functionality used in this course.
Jupyter notebook demo of unittest functionality used in the course.
Exercises Section - see pdf file in Resources link
Overview of sklearn (scikit-learn) functionality used in this course.
Jupyter notebook demo of sklearn functionality used in the course.
Exercises Section - see pdf file in Resources link
Overview of Section 3, which covers linear algebra, multi-variable calculus, and optimization
Brief review of matrix notation, transposes, multiplication, and broadcasting
Jupyter notebook demo about numpy functionality for transposes, multiplication, and broadcasting.
Exercises Section - see pdf file in Resources link
Review of partial derivatives, gradients and the chain rule of multi-variable calculus
Exercises Section - see pdf file in Resources link
Gradient Descent algorithm for minimizing a function
Jupyter notebook demo of the Gradient Descent algorithm.
Exercises Section - see pdf file in Resources link
Notation used in course.
Overview of section on Linear and Logistic Regression
Review of normal equations approach for linear regression.
Jupyter notebook demo of normal equations.
Mathematical foundations for linear regression, including forward and back propagation, loss, training, prediction, and accuracy calculation.
Jupyter notebook demo of the machine learning approach for linear regression.
Exercises Section - see pdf file in Resources link
Approach for testing the forward/back propagation algorithm for computing derivatives.
Jupyter notebook demo of derivative testing.
Exercises Section - see pdf file in Resources link
Broad overview of course code framework design.
Description of codes in Version1.1 of framework, which implements forward and back propagation and derivative unit test.
Walkthrough of Version1.1 of framework.
Exercises Section - see pdf file in Resources link
Description of Version1.2 of the framework, which includes codes for training, prediction, accuracy and driver for linear regression.
Walkthrough of Version1.2 of framework.
Exercises Section - see pdf file in Resources link
Mathematical foundations for logistic regression
Jupyter notebook demo of logistic regression calculations.
Exercises Section - see pdf file in Resources link
Descriptions of Version1.3 of the framework, which adds loss, activation, unit test, and driver for logistic regression.
Walkthrough of Version1.3 of the framework.
Exercises Section - see pdf file in Resources link
Overview of the Neural Networks Section 5.0.
Mathematical foundations for neural networks, including forward and back propagation, training, prediction, and accuracy calculation.
Jupyter notebook demo for neural networks
Exercises Section - see pdf file in Resources link
Implementation of activation functions to avoid overflow issues.
Jupyter notebook demo of implementation of activation functions.
Exercises Section - see pdf file in Resources link
Description of Version2.1 of the framework, which includes implementation of neural networks for binary classification.
Walkthrough of Version2.1 of the framework.
Exercises Section - see pdf file in Resources link
Definition and practical implementation of softmax activation function used for multiclass classification.
This section is Jupyter notebook demo for the softmax activation function.
Exercises Section - see pdf file in Resources link
One-hot matrix and its inverse.
Jupyter notebook demo of the one-hot matrix and its inverse.
Exercises Section - see pdf file in Resources link
Mathematical foundations for neural networks for multiclass classification, including forward and back propagation, prediction, and accuracy calculation.
Jupyter notebook demo of neural networks for multiclass classification.
Exercises section - see pdf file in Resources link.
Description of Version2.2 of the code, which implements of multiclass classification
Walkthrough of Version2.1 of the framework.
Exercises section - see pdf file in Resources link.
Overview of Section 6 on Optimization, Validation, Accuracy, and Regularization.
Description of stochastic and mini-batch optimization.
Jupyter notebook demo of stochastic and mini-batch optimization.
Exercises section - see pdf file in Resources link.
Description and examples of momentum, RmsProp, and Adam optimization
Jupyter notebook demo of momentum, RmsProp, and Adam optimization.
Exercises section - see PDF file in Resources link.
Description of framework Version3.1, which includes implementation of mini-batch, momentum, RmsProp, and Adam optimization.
Walkthrough of Version 3.1 of the framework.
Exercises section - see pdf file in Resources link.
Presentations of approaches for validation of machine learning systems.
Description of alternatives to accuracy, such as precision, recall, f1score, and confusion matrix, for measuring performance.
Exercise section - see PDF file in Resources link.
Description of Version3.2 of framework, which includes new validation and performance measures.
Walkthough of Version3.2 of framework.
Exercises section - see PDF file in Resources link.
Description of regularization for machine learning systems.
Description of hyperparameter search process for tuning a machine learning system.
Description of framework Version 3.3, which includes implementation of regularization and hyperparameter search.
Walkthrough of Version3.3 of framework.
Exercises section - see pdf file in Resources link.
Description of diagnosis and remediation of underfitting and overfitting.
Exercises section - see PDF file in Resources link.
Overview of the Section 7, which covers 3 case studies.
Description of approach of using linear regression to predict house prices.
Walkthrough of house prediction case study.
Exercises Section - see PDF file in Resources link.
Description of approach for using neural network spam classification.
Walkthrough of spam classification case study.
Exercises section - see PDF file in Resources Link.
Description of approach for using neural networks for digits classification.
Walkthrough of digits classification case study.
Exercises section - see PDF file in Resources link.
Overview of the Tensorflow Section.
Overview of Tensorflow code for MNIST digits classification and comparison with course framework.
Walkthrough of use Tensorflow for the MNIST digits classification.
Exercises section - PDF file in Resources link.
Discussion of GPU and walkthrough use of Tensorflow for MNIST digits classification on a GPU.
Overview of the Summary and Thank You section.
This section has a brief overview of alternative approaches, including decision trees, random forest, and Adaboost.
This section has a summary of the course.
Listing of sources for further study and provides a thank you for students.
Course Outcome:
After taking this course, students will be able to understand and implement machine learning algorithms using Python for regression, binary classification, and multi-class classification with applications to real-world datasets.
Course Topics and Approach:
This introductory course on machine learning focuses on Supervised Learning, which involves finding functions that fit data and then using the functions to make predictions. Applications include image classification, text sentiment classification, house price prediction.
The core of this course involves study of the following algorithms:
Linear Regression, Logistic Regression, Neural Networks for regression, binary, and multiclass classification
Unlike many other courses, this course:
Has a detailed presentation of the the math underlying the above algorithms including optimization algorithms and back propagation formulas
Has a detailed explanation of how algorithms are converted into Python code with lectures on code design and use of vectorization
Has homework questions (programming and theory) and solutions that allow learners to get practice with the course material
The course codes are then used to address case studies involving real-world data including image classification, text message spam/no spam classification, and house price prediction.
Course Audience:
This course is designed for:
Scientists, engineers, and programmers and others interested in machine learning/data science
No prior experience with machine learning is needed
Students should have knowledge of
Basic linear algebra (vectors, matrix multiplication, transpose)
Multivariable calculus (to follow details of optimization and backpropagation formulas)
Python 3 programming
Students should have a Python installation, such as the Anaconda platform, on their machine with the ability to run programs in the command window and in Jupyter Notebooks
Teaching Style and Resources:
Course includes many examples with plots used to help students get a better understanding of the material
Course has 50+ exercises with solutions (theoretical, Jupyter Notebook, and programming) to allow students to gain additional practice
All resources (presentations, supplementary documents, demos, codes, solutions to exercises) are downloadable from the course Github site.