We may earn an affiliate commission when you visit our partners.
Course image
Dr Kevin Webster

Welcome to this course on Probabilistic Deep Learning with TensorFlow!

This course builds on the foundational concepts and skills for TensorFlow taught in the first two courses in this specialisation, and focuses on the probabilistic approach to deep learning. This is an increasingly important area of deep learning that aims to quantify the noise and uncertainty that is often present in real world datasets. This is a crucial aspect when using deep learning models in applications such as autonomous vehicles or medical diagnoses; we need the model to know what it doesn't know.

Read more

Welcome to this course on Probabilistic Deep Learning with TensorFlow!

This course builds on the foundational concepts and skills for TensorFlow taught in the first two courses in this specialisation, and focuses on the probabilistic approach to deep learning. This is an increasingly important area of deep learning that aims to quantify the noise and uncertainty that is often present in real world datasets. This is a crucial aspect when using deep learning models in applications such as autonomous vehicles or medical diagnoses; we need the model to know what it doesn't know.

You will learn how to develop probabilistic models with TensorFlow, making particular use of the TensorFlow Probability library, which is designed to make it easy to combine probabilistic models with deep learning. As such, this course can also be viewed as an introduction to the TensorFlow Probability library.

You will learn how probability distributions can be represented and incorporated into deep learning models in TensorFlow, including Bayesian neural networks, normalising flows and variational autoencoders. You will learn how to develop models for uncertainty quantification, as well as generative models that can create new samples similar to those in the dataset, such as images of celebrity faces.

You will put concepts that you learn about into practice straight away in practical, hands-on coding tutorials, which you will be guided through by a graduate teaching assistant. In addition there is a series of automatically graded programming assignments for you to consolidate your skills.

At the end of the course, you will bring many of the concepts together in a Capstone Project, where you will develop a variational autoencoder algorithm to produce a generative model of a synthetic image dataset that you will create yourself.

This course follows on from the previous two courses in the specialisation, Getting Started with TensorFlow 2 and Customising Your Models with TensorFlow 2. The additional prerequisite knowledge required in order to be successful in this course is a solid foundation in probability and statistics. In particular, it is assumed that you are familiar with standard probability distributions, probability density functions, and concepts such as maximum likelihood estimation, change of variables formula for random variables, and the evidence lower bound (ELBO) used in variational inference.

Enroll now

What's inside

Syllabus

TensorFlow Distributions
Probabilistic modelling is a powerful and principled approach that provides a framework in which to take account of uncertainty in the data. The TensorFlow Probability (TFP) library provides tools for developing probabilistic models that extend the capability of TensorFlow. In this first week of the course, you will learn how to use the Distribution objects in TFP, and the key methods to sample from and compute probabilities from these distributions. You will also learn how to make these distributions trainable. The programming assignment or this week will put these techniques into practice by implementing a Naive Bayes classifier on the Iris dataset.
Read more
Probabilistic layers and Bayesian neural networks
Accounting for sources of uncertainty is an important aspect of the modelling process, especially for safety-critical applications such as medical diagnoses. Most standard deep learning models do not quantify the uncertainty in their predictions. In this week you will learn how to use probabilistic layers from TensorFlow Probability to develop deep learning models that are able to provide measures of uncertainty in both the data, and the model itself. In the programming assignment for this week, you will develop a Bayesian CNN for the MNIST and MNIST-C datasets.
Bijectors and normalising flows
Normalising flows are a powerful class of generative models, that aim to model the underlying data distribution by transforming a simple base distribution through a series of bijective transformations. In this week you will learn how to use bijector objects from the TensorFlow Probability library to implement these transformations, and learn a complex transformed distribution from data. These models can be used to sample new data generations, as well as evaluate the likelihood of data examples. In the programming assignment for this week, you will develop a RealNVP normalising flow model for the LSUN bedroom dataset.
Variational autoencoders
Variational autoencoders are one of the most popular types of likelihood-based generative deep learning models. In the VAE algorithm two networks are jointly learned: an encoder or inference network, as well as a decoder or generative network. In this week you will learn how to implement the VAE using the TensorFlow Probability library. You will then use the trained networks to encode data examples into a compressed latent space, as well as generate new samples from the prior distribution and the decoder. In the programming assignment for this week, you will develop the variational autoencoder for an image dataset of celebrity faces.
Capstone Project
In this course you have learned how to develop probabilistic deep learning models using tools and concepts from the TensorFlow Probability library such as Distribution objects, probabilistic layers, bijectors, and KL divergence optimisation. The Capstone Project brings many of these concepts together with a task to create a synthetic image dataset using normalising flows, and train a variational autoencoder on the dataset.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Introduces learners to foundational problems and methodologies in deep learning, which may be useful to continue studies in this field
Develops crucial skills for building models for uncertainty quantification and generative models in autonomous vehicles or medical diagnoses
Builds upon knowledge from the first two courses in this specialization
Requires a solid foundation in probability and statistics
In addition to theory, course includes practical hands-on coding tutorials led by a graduate teaching assistant
Offers a Capstone Project to synthesize learning by developing a variational autoencoder algorithm to produce a generative model of a synthetic image dataset

Save this course

Save Probabilistic Deep Learning with TensorFlow 2 to your list so you can find it easily later:
Save

Reviews summary

Deep learning with tensorflow 2

Learners say this hands-on course gives a well-rounded introduction to Probabilistic Deep Learning and TensorFlow 2.0. Students should expect lectures that are clear and assignments that test skills covered in video lectures. Some reviewers report that this course improved greatly thanks to an active course organizer. Despite some coding bugs and difficult content, learners report that there is a lot of substance and quality here. Due to the difficult content, this course is best suited for learners that already have undergraduate-level knowledge of math.
Lots of hands-on coding experience
"Really good subject and tough adventure :)"
"I learned to reproduce the paper with code."
Challenging yet rewarding assignments
"Great course! Challenging yet rewarding."
"The assignments do actually test your skills learned during the week."
Would benefit from a separate course in Statistics Concepts
"this specialization is sorely missing one more 5 week course in between the 2nd and 3rd course and that is the Statistics Concepts"
Outdated TensorFlow version and no instructor support
"Outdated TensorFlow version used and no support "
"No support from the course staff and Coursera Help Center even for system-related technical problems."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Probabilistic Deep Learning with TensorFlow 2 with these activities:
Organize Course Resources and Notes
Stay organized throughout the course by effectively managing your notes, assignments, and other materials.
Show steps
  • Create a system for organizing digital and physical materials.
  • Review and summarize key concepts from each class.
Read 'Probabilistic Machine Learning: A Bayesian and Frequentist Perspective'
Strengthen your theoretical foundation in probabilistic machine learning through a comprehensive book that covers both Bayesian and frequentist approaches.
View Machine Learning on Amazon
Show steps
  • Read chapters on probability distributions, Bayesian inference, and generative models.
Explore Bijectors and Normalizing Flows
Deepen your knowledge of bijectors and normalizing flows, enhancing your understanding of generative models.
Show steps
  • Follow a tutorial on implementing a RealNVP flow model.
  • Experiment with different bijector transformations.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a Workshop on TensorFlow Probability
Engage with experts and fellow learners in a workshop dedicated to TensorFlow Probability, enhancing your practical skills.
Show steps
  • Research and identify relevant workshops.
  • Attend the workshop and actively participate.
Complete TensorFlow Probability Exercises
Reinforce your understanding of TensorFlow Probability's core concepts through hands-on exercises.
Show steps
  • Implement a Bayesian neural network for the MNIST dataset.
  • Build a variational autoencoder for image generation.
Build a Generative Model for a Custom Dataset
Apply your skills to create a generative model for a dataset of your choice, demonstrating your mastery of building and training probabilistic models.
Browse courses on Generative Models
Show steps
  • Collect or create a custom image dataset.
  • Train a variational autoencoder on the dataset.
  • Evaluate the model's performance and generate new samples.
Participate in a Probabilistic Deep Learning Competition
Challenge yourself and showcase your skills by participating in a competition focused on probabilistic deep learning, gaining valuable experience.
Show steps
  • Identify and register for a relevant competition.
  • Develop and implement a probabilistic deep learning solution.
  • Submit your solution and evaluate your performance.
Develop a Tutorial on Probabilistic Deep Learning with TensorFlow
Solidify your understanding by creating a tutorial that explains probabilistic deep learning concepts with TensorFlow, sharing your knowledge with others.
Show steps
  • Choose a specific topic within probabilistic deep learning to focus on.
  • Write clear and concise explanations of the concepts.
  • Include code examples and practical exercises.

Career center

Learners who complete Probabilistic Deep Learning with TensorFlow 2 will develop knowledge and skills that may be useful to these careers:
Machine Learning Researcher
As a Machine Learning Researcher, you will need a strong understanding of probability and statistics. This course can help you build a foundation in these areas, as well as provide you with the skills to develop probabilistic deep learning models. These models are becoming increasingly important in a variety of fields, such as autonomous vehicles and medical diagnoses. By taking this course, you will be well-prepared for a career in Machine Learning Research.
Data Scientist
As a Data Scientist, you will need to be able to develop and interpret probabilistic models. This course can help you build the skills needed to do this, as well as provide you with an understanding of the TensorFlow Probability library. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Data Science.
Software Engineer
As a Software Engineer, you may be required to develop probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to develop these models in TensorFlow. TensorFlow is a popular deep learning library that is used in a variety of industries, including finance, healthcare, and manufacturing. By taking this course, you will be well-prepared for a career in Software Engineering.
Quantitative Analyst
As a Quantitative Analyst, you will need to be able to develop and interpret probabilistic models. This course can help you build the skills needed to do this, as well as provide you with an understanding of the TensorFlow Probability library. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Quantitative Analysis.
Risk Analyst
As a Risk Analyst, you will need to be able to develop and interpret probabilistic models. This course can help you build the skills needed to do this, as well as provide you with an understanding of the TensorFlow Probability library. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Risk Analysis.
Statistician
As a Statistician, you will need to be able to develop and interpret probabilistic models. This course can help you build the skills needed to do this, as well as provide you with an understanding of the TensorFlow Probability library. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Statistics.
Actuary
As an Actuary, you will need to be able to develop and interpret probabilistic models. This course can help you build the skills needed to do this, as well as provide you with an understanding of the TensorFlow Probability library. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Actuarial Science.
Data Analyst
As a Data Analyst, you will need to be able to interpret probabilistic models. This course can help you build the skills needed to do this, as well as provide you with an understanding of the TensorFlow Probability library. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Data Analysis.
Financial Analyst
As a Financial Analyst, you may be required to work with probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to interpret these models. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Financial Analysis.
Business Analyst
As a Business Analyst, you may be required to work with probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to interpret these models. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Business Analysis.
Operations Research Analyst
As an Operations Research Analyst, you may be required to work with probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to develop and interpret these models. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Operations Research.
Product Manager
As a Product Manager, you may be required to work with probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to interpret these models. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Product Management.
Project Manager
As a Project Manager, you may be required to work with probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to interpret these models. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Project Management.
Consultant
As a Consultant, you may be required to work with probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to develop and interpret these models. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Consulting.
Technical Writer
As a Technical Writer, you may be required to work with probabilistic models. This course can help you build a foundation in probability and statistics, as well as provide you with the skills to interpret these models. TensorFlow Probability is a powerful tool that can be used to develop a variety of probabilistic models, including Bayesian neural networks and normalising flows. By taking this course, you will be well-prepared for a career in Technical Writing.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Probabilistic Deep Learning with TensorFlow 2:

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Probabilistic Deep Learning with TensorFlow 2.
This comprehensive book provides a probabilistic perspective on machine learning. It covers various supervised and unsupervised learning algorithms, as well as probabilistic graphical models.
Provides a comprehensive introduction to Bayesian reasoning and machine learning. It covers various topics relevant to this course, including probability distributions, Bayesian inference, and graphical models.
This widely-used book provides a practical introduction to Bayesian data analysis. It covers various Bayesian modeling techniques and their applications in different fields.
This online book provides a comprehensive introduction to normalizing flows, a type of generative model used in probabilistic deep learning.
This open-source book provides a comprehensive introduction to deep learning, including probabilistic deep learning. Models the course structure and includes hands-on exercises.
This practical book provides a hands-on introduction to deep learning using Fastai and PyTorch. It covers various deep learning concepts and techniques, including probabilistic deep learning.
This classic book provides a comprehensive introduction to probabilistic graphical models, which are used to represent complex probabilistic relationships in data.
Provides a practical introduction to deep learning using Python. It covers various deep learning architectures and techniques, including convolutional neural networks, recurrent neural networks, and generative adversarial networks.
This classic book provides a foundational understanding of probability theory, including Bayesian inference and decision theory, which are relevant to the probabilistic approach to deep learning.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Probabilistic Deep Learning with TensorFlow 2.
Getting started with TensorFlow 2
Most relevant
Implementing Image Recognition Systems with TensorFlow 1
Most relevant
Probabilistic Graphical Models 3: Learning
Most relevant
TensorFlow 1: Getting Started
Most relevant
Probabilistic Graphical Models 2: Inference
Most relevant
Optimize TensorFlow Models For Deployment with TensorRT
Most relevant
TensorFlow for AI: Get to Know Tensorflow
Most relevant
Customising your models with TensorFlow 2
Most relevant
TensorFlow 2.0 Practical
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser