A self-study guide for aspiring machine learning practitioners. Machine Learning Crash Course features a series of lessons with video lectures, real-world case studies, and hands-on practice exercises.
Machine Learning Crash Course does not presume or require any prior knowledge in machine learning. However, to understand the concepts presented and complete the exercises, we recommend that students meet the following prerequisites:
Mastery of intro-level algebra. You should be comfortable with variables and coefficients, linear equations, graphs of functions, and histograms. (Familiarity with more advanced math concepts such as logarithms and derivatives is helpful, but not required.)
Proficiency in programming basics, and some experience coding in Python. Programming exercises in Machine Learning Crash Course are coded in Python using TensorFlow. No prior experience with TensorFlow is required, but you should feel comfortable reading and writing Python code that contains basic programming constructs, such as function definitions/invocations, lists and dicts, loops, and conditional expressions.
- Recognize the practical benefits of mastering machine learning
- Understand the philosophy behind machine learning
- Refresh the fundamental machine learning terms.
- Explore various uses of machine learning.
- Refresh your memory on line fitting.
- Relate weights and biases in machine learning to slope and offset in line fitting.
- Understand "loss" in general and squared loss in particular.
- Learn how to create and modify tensors in TensorFlow.
- Learn the basics of pandas.
- Develop linear regression code with one of TensorFlow's high-level APIs.
- Experiment with learning rate.
- Discover how to train a model using an iterative approach.
- Understand full gradient descent and some variants, including:
- mini-batch gradient descent
- stochastic gradient descent
- Experiment with learning rate.
Examine the benefits of dividing a data set into a training set and a test set.
Understand the importance of a validation set in a partitioning scheme.
- Map fields from logs and protocol buffers into useful ML features.
- Determine which qualities comprise great features.
- Handle outlier features.
- Investigate the statistical properties of a data set.
- Train and evaluate a model with tf.estimator.
- Build an understanding of feature crosses.
- Implement feature crosses in TensorFlow.
- Learn about trade-offs between complexity and generalizability.
- Experiment with L2 regularization.
- Understand logistic regression.
- Explore loss and regularization functions for logistic regression.
- Evaluating the accuracy and precision of a logistic regression model.
- Understanding ROC Curves and AUCs.
- Develop some intuition about neural networks, particularly about:
- hidden layers
- activation functions
- Learn how to drive uninformative coefficient values to exactly 0, in order to save RAM.
- Learn about other kinds of regularization besides L2.
Develop some intuition around backpropagation.
- Develop an understanding of multi-class classification problems, particularly Softmax.
- Develop Softmax solutions in TensorFlow.
- Learn what an embedding is and what it's for.
- Learn how embeddings encode semantic relations.
- Learn how to use embeddings.
- Learn how to train meaningful embeddings (using word2vec, for example).
Understand the breadth of components in a production ML system.
Identify the pros and cons of static and dynamic training.
- Understand the pros and cons of static and dynamic inference.
- Estimate training and serving needs for real-world scenarios.
Understand data dependencies in production ML systems.
- Become aware of common human biases that can inadvertently be reproduced by ML algorithms.
- Proactively explore data to identify sources of bias before training a model
- Evaluate model predictions for bias
ML Systems in the Real World
This course is provided for free. This site is not affiliated with nor endorsed by Google. Course content adapted from Google's Machine Learning Crash Course. Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.