We may earn an affiliate commission when you visit our partners.
Course image
Lazy Programmer Inc.

Ever wondered how AI technologies like OpenAI ChatGPT, GPT-4, DALL-E, Midjourney, and Stable Diffusion really work? In this course, you will learn the foundations of these groundbreaking applications.

Read more

Ever wondered how AI technologies like OpenAI ChatGPT, GPT-4, DALL-E, Midjourney, and Stable Diffusion really work? In this course, you will learn the foundations of these groundbreaking applications.

This course continues where my first course, Deep Learning in Python, left off. You already know how to build an artificial neural network in Python, and you have a plug-and-play script that you can use for TensorFlow. Neural networks are one of the staples of machine learning, and they are always a top contender in Kaggle contests. If you want to improve your skills with neural networks and deep learning, this is the course for you.

You already learned about backpropagation, but there were a lot of unanswered questions. How can you modify it to improve training speed? In this course you will learn about batch and stochastic gradient descent, two commonly used techniques that allow you to train on just a small sample of the data at each iteration, greatly speeding up training time.

You will also learn about momentum, which can be helpful for carrying you through local minima and prevent you from having to be too conservative with your learning rate. You will also learn about adaptive learning rate techniques like AdaGrad, RMSprop, and Adam which can also help speed up your training.

Because you already know about the fundamentals of neural networks, we are going to talk about more modern techniques, like dropout regularization and batch normalization, which we will implement in both TensorFlow and Theano. The course is constantly being updated and more advanced regularization techniques are coming in the near future.

In my last course, I just wanted to give you a little sneak peak at TensorFlow. In this course we are going to start from the basics so you understand exactly what's going on - what are TensorFlow variables and expressions and how can you use these building blocks to create a neural network? We are also going to look at a library that's been around much longer and is very popular for deep learning - Theano. With this library we will also examine the basic building blocks - variables, expressions, and functions - so that you can build neural networks in Theano with confidence.

Theano was the predecessor to all modern deep learning libraries today. Today, we have almost Keras, PyTorch, CNTK (Microsoft), MXNet (Amazon / Apache), etc. In this course, we cover all of these. Pick and choose the one you love best.

Because one of the main advantages of TensorFlow and Theano is the ability to use the GPU to speed up training, I will show you how to set up a GPU-instance on AWS and compare the speed of CPU vs GPU for training a deep neural network.

With all this extra speed, we are going to look at a real dataset - the famous MNIST dataset (images of handwritten digits) and compare against various benchmarks. This is THE dataset researchers look at first when they want to ask the question, "does this thing work?"

These images are important part of deep learning history and are still used for testing today. Every deep learning expert should know them well.

This course focuses on "how to build and understand", not just "how to use". Anyone can learn to use an API in 15 minutes after reading some documentation. It's not about "remembering facts", it's about "seeing for yourself" via experimentation. It will teach you how to visualize what's happening in the model internally. If you want more than just a superficial look at machine learning models, this course is for you.

"If you can't implement it, you don't understand it"

  • Or as the great physicist Richard Feynman said: "What I cannot create, I do not understand".

  • My courses are the ONLY courses where you will learn how to implement machine learning algorithms from scratch

  • Other courses will teach you how to plug in your data into a library, but do you really need help with 3 lines of code?

  • After doing the same thing with 10 datasets, you realize you didn't learn 10 things. You learned 1 thing, and just repeated the same 3 lines of code 10 times...

Suggested Prerequisites:

  • Know about gradient descent

  • Probability and statistics

  • Python coding: if/else, loops, lists, dicts, sets

  • Numpy coding: matrix and vector operations, loading a CSV file

  • Know how to write a neural network with Numpy

WHAT ORDER SHOULD I TAKE YOUR COURSES IN?:

  • Check out the lecture "Machine Learning and AI Prerequisite Roadmap" (available in the FAQ of any of my courses, including the free Numpy course)

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Apply momentum to backpropagation to train neural networks
  • Apply adaptive learning rate procedures like adagrad, rmsprop, and adam to backpropagation to train neural networks
  • Understand the basic building blocks of tensorflow
  • Build a neural network in tensorflow
  • Write a neural network using keras
  • Write a neural network using pytorch
  • Understand the difference between full gradient descent, batch gradient descent, and stochastic gradient descent
  • Understand and implement dropout regularization
  • Understand and implement batch normalization
  • Understand the basic building blocks of theano
  • Build a neural network in theano
  • Write a neural network using cntk
  • Write a neural network using mxnet
  • Understand important foundations for openai chatgpt, gpt-4, dall-e, midjourney, and stable diffusion
  • Show more
  • Show less

Syllabus

Introduction and Outline
Where to get the Code
How to Succeed in this Course
Review of basic neural network concepts, downloading MNIST, and using a linear classifier on it
Read more
Review (pt 1): Neuron Predictions
Review (pt 2): Neuron Learning
Review (pt 3): Artificial Neural Networks
Review Exercise Prompt
Review Code (pt 1)
Review Code (pt 2)
Review Summary
Know the difference between full, batch, and stochastic gradient descent, and their advantages and disadvantages
Stochastic Gradient Descent and Mini-Batch Gradient Descent (Theory)
SGD Exercise Prompt
Stochastic Gradient Descent and Mini-Batch Gradient Descent (Code pt 1)
Stochastic Gradient Descent and Mini-Batch Gradient Descent (Code pt 2)
Know how to use momentum and adaptive learning rates to improve backpropagation

How can you use momentum to speed up neural network training and get out of local minima?

Nesterov Momentum
Momentum in Code

Learn about periodic decay of learning rate, exponential decay, 1/t decay, AdaGrad, and RMSprop.

Constant learning rate vs. RMSProp in Code
Adam Optimization (pt 1)
Adam Optimization (pt 2)
Adam in Code
Suggestion Box
Choosing Hyperparameters
Hyperparameter Optimization: Cross-validation, Grid Search, and Random Search
Sampling Logarithmically
Grid Search in Code
Modifying Grid Search
Random Search in Code
Weight Initialization
Weight Initialization Section Introduction
Vanishing and Exploding Gradients
Local vs. Global Minima
Weight Initialization Section Summary
Understand Theano variables, expressions, and functions. Build a neural network in Theano.
Theano Basics: Variables, Functions, Expressions, Optimization
Building a neural network in Theano
Is Theano Dead?
Understand TensorFlow variables, expressions, and functions. Build a neural network in TensorFlow.
TensorFlow Basics: Variables, Functions, Expressions, Optimization
Building a neural network in TensorFlow
What is a Session? (And more)
Know how to use the GPU on Amazon Web Services to speed up backpropagation, and how to hone your deep learning skills.

I show you how to start a GPU instance on Amazon Web Services (AWS) and prove to you that training a neural network using Theano on the GPU can be much faster than the CPU.

Installing NVIDIA GPU-Accelerated Deep Learning Libraries on your Home Computer
Can Big Data be used to Speed Up Backpropagation?
How to Improve your Theano and Tensorflow Skills
Theano vs. TensorFlow
Transition to the 2nd Half of the Course
Project: Facial Expression Recognition
Facial Expression Recognition Project Introduction
Facial Expression Recognition Problem Description
The class imbalance problem
Utilities walkthrough
Class-Based ANN in Theano
Class-Based ANN in TensorFlow
Facial Expression Recognition Project Summary
Modern Regularization Techniques
Modern Regularization Techniques Section Introduction
Dropout Regularization
Dropout Intuition
Noise Injection
Modern Regularization Techniques Section Summary
Batch Normalization
Batch Normalization Introduction
Exponentially-Smoothed Averages
Batch Normalization Theory
Batch Normalization Tensorflow (part 1)
Batch Normalization Tensorflow (part 2)
Batch Normalization Theano (part 1)
Batch Normalization Theano (part 2)
Noise Perspective
Batch Normalization Summary
Keras
Keras Discussion
Keras in Code
Keras Functional API
How to easily convert Keras into Tensorflow 2.0 code
PyTorch
PyTorch Basics
PyTorch Dropout
PyTorch Batch Norm
PyTorch, CNTK, and MXNet
Deep Learning Review Topics
What's the difference between "neural networks" and "deep learning"?
Manually Choosing Learning Rate and Regularization Penalty
Setting Up Your Environment (FAQ by Student Request)
Pre-Installation Check
Anaconda Environment Setup
How to install Numpy, Scipy, Matplotlib, Pandas, IPython, Theano, and TensorFlow
Extra Help With Python Coding for Beginners (FAQ by Student Request)
How to Code by Yourself (part 1)
How to Code by Yourself (part 2)

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides a strong foundation for those new to neural networks
Builds upon knowledge of basic neural network concepts
Focuses on 'how to build and understand', not just 'how to use'
Leverages Theano and TensorFlow
Instructs using Python code, which is beginner-friendly
Teaches critical principles of deep learning and AI

Save this course

Save Data Science: Modern Deep Learning in Python to your list so you can find it easily later:
Save

Reviews summary

Well-received deep learning course

Learners say this deep learning course is well-paced and easy to follow. According to students, the lectures are especially detailed and engaging
Students generally liked the pace of the course.
"Easy to listen to and just the right pace for my learning."
Lectures were lauded by students.
"Easy to listen to and just the right pace for my learning."
"The lectures on dropout and batch normalization are very detailed, as was the rest of the course."

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 Data Science: Modern Deep Learning in Python with these activities:
Practice coding backpropagation by hand in Python
Solidify your understanding of backpropagation, the cornerstone of neural network training, by implementing it from scratch in Python.
Browse courses on Backpropagation
Show steps
  • Review the theory of backpropagation
  • Set up a simple neural network in Python
  • Implement the backpropagation algorithm in Python
  • Test your backpropagation implementation on a toy dataset
Follow a tutorial on momentum and adaptive learning rates
Enhance your knowledge of momentum and adaptive learning rates, techniques that accelerate neural network training, by following a guided tutorial.
Browse courses on Momentum
Show steps
  • Find a reputable tutorial on momentum and adaptive learning rates
  • Follow the tutorial step-by-step
  • Implement the techniques in your own neural network code
Join a study group and help other students with their understanding of neural networks
Solidify your understanding of neural networks by explaining concepts and answering questions in a study group, fostering a collaborative learning environment.
Browse courses on Neural Networks
Show steps
  • Find a study group
  • Attend study group meetings regularly
  • Help other students with their understanding of neural networks
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve practice problems on dropout regularization and batch normalization
Deepen your understanding of dropout regularization and batch normalization by solving practice problems that test your ability to apply these techniques.
Browse courses on Dropout Regularization
Show steps
  • Find a set of practice problems on dropout regularization and batch normalization
  • Solve the problems on your own
  • Check your solutions against the provided answer key
Create a presentation on the differences between TensorFlow, Theano, Keras, and PyTorch
Enhance your understanding of the similarities and differences between TensorFlow, Theano, Keras, and PyTorch by creating a presentation that compares and contrasts these frameworks.
Browse courses on TensorFlow
Show steps
  • Gather information on TensorFlow, Theano, Keras, and PyTorch
  • Identify the key differences between the frameworks
  • Create a presentation that compares and contrasts the frameworks
Participate in a Kaggle competition on MNIST classification
Test your skills and learn from others by participating in a Kaggle competition on MNIST classification, a popular benchmark in deep learning.
Browse courses on Kaggle
Show steps
  • Sign up for a Kaggle account
  • Join the MNIST classification competition
  • Build and train a neural network model for MNIST classification
  • Submit your results to Kaggle
  • Analyze the results and learn from others
Contribute to an open-source project related to deep learning
Gain practical experience and make a meaningful contribution to the field of deep learning by participating in an open-source project.
Browse courses on Open-Source
Show steps
  • Find an open-source project related to deep learning
  • Familiarize yourself with the project and its codebase
  • Identify an area where you can contribute
  • Make a contribution to the project

Career center

Learners who complete Data Science: Modern Deep Learning in Python will develop knowledge and skills that may be useful to these careers:
Data Scientist
Data scientists analyze large datasets to extract meaningful insights, which can be used to improve decision-making and solve problems. They typically have a strong background in mathematics, statistics, and computer science. This course can help data scientists build a strong foundation in deep learning, which is a valuable skill for this field. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Machine Learning Engineer
Machine learning engineers design and develop machine learning models, which can be used to automate tasks, make predictions, and improve decision-making. They typically have a strong background in computer science, mathematics, and statistics. This course can help machine learning engineers build a strong foundation in deep learning, which is a valuable skill for this field. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Computer Vision Engineer
Computer vision engineers design and develop computer vision algorithms and technologies, which can be used to analyze and interpret images and videos. They typically have a strong background in computer science, mathematics, and statistics. This course can help computer vision engineers build a strong foundation in deep learning, which is a valuable skill for this field. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Artificial Intelligence Researcher
Artificial intelligence researchers develop new and improved artificial intelligence algorithms and technologies. They typically have a strong background in computer science, mathematics, and statistics. This course can help artificial intelligence researchers build a strong foundation in deep learning, which is a valuable skill for this field. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Natural Language Processing Engineer
Natural language processing engineers design and develop natural language processing algorithms and technologies, which can be used to analyze and generate text. They typically have a strong background in computer science, linguistics, and mathematics. This course can help natural language processing engineers build a strong foundation in deep learning, which is a valuable skill for this field. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Deep Learning Engineer
Deep learning engineers design and develop deep learning models, which can be used to automate tasks, make predictions, and improve decision-making. They typically have a strong background in computer science, mathematics, and statistics. This course can help deep learning engineers build a strong foundation in deep learning, which is a valuable skill for this field. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Robotics Engineer
Robotics engineers design and develop robots, which can be used to automate tasks, perform dangerous jobs, and explore new environments. They typically have a strong background in computer science, mechanical engineering, and electrical engineering. This course can help robotics engineers build a strong foundation in deep learning, which is a valuable skill for this field. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Financial Analyst
Financial analysts use mathematical and statistical models to analyze financial data and make investment decisions. They typically have a strong background in mathematics, statistics, and computer science. This course may be useful for financial analysts who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Quantitative Analyst
Quantitative analysts use mathematical and statistical models to analyze financial data and make investment decisions. They typically have a strong background in mathematics, statistics, and computer science. This course may be useful for quantitative analysts who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Actuary
Actuaries use mathematical and statistical models to assess risk and uncertainty. They typically have a strong background in mathematics, statistics, and computer science. This course may be useful for actuaries who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Business Analyst
Business analysts help organizations improve their performance by analyzing data and identifying opportunities for improvement. They typically have a strong background in business, mathematics, and statistics. This course may be useful for business analysts who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Operations Research Analyst
Operations research analysts use mathematical and statistical models to improve the efficiency and effectiveness of organizations. They typically have a strong background in mathematics, statistics, and computer science. This course may be useful for operations research analysts who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Statistician
Statisticians collect, analyze, and interpret data to make inferences about the world. They typically have a strong background in mathematics, statistics, and computer science. This course may be useful for statisticians who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Data Analyst
Data analysts analyze data to extract meaningful insights, which can be used to improve decision-making and solve problems. They typically have a strong background in mathematics, statistics, and computer science. This course may be useful for data analysts who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.
Software Engineer
Software engineers design, develop, and maintain software systems. They typically have a strong background in computer science. This course may be useful for software engineers who want to learn more about deep learning. The course covers topics such as gradient descent, backpropagation, and regularization, which are all essential for understanding and applying deep learning techniques.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read three articles that feature Data Science: Modern Deep Learning in Python:

Reading list

We've selected nine 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 Data Science: Modern Deep Learning in Python.
Provides a comprehensive overview of deep learning, including its history, theoretical foundations, and applications. It valuable resource for anyone who wants to learn more about deep learning.
Provides a concise and accessible introduction to machine learning. It great resource for anyone who wants to learn the basics of machine learning without getting bogged down in the details.
Provides a comprehensive overview of the mathematical foundations of machine learning. It valuable resource for anyone who wants to understand the theoretical underpinnings of machine learning.
Provides a comprehensive overview of pattern recognition and machine learning. It valuable resource for anyone who wants to learn about these topics in depth.
Provides a probabilistic perspective on machine learning. It valuable resource for anyone who wants to understand the theoretical foundations of machine learning.
Provides a comprehensive overview of deep learning for natural language processing. It valuable resource for anyone who wants to learn how to use deep learning to solve NLP problems.
Provides a comprehensive overview of machine learning using scikit-learn, Keras, and TensorFlow. It valuable resource for anyone who wants to learn how to use these libraries to build and train machine learning models.
Provides a comprehensive overview of deep learning using Python. It valuable resource for anyone who wants to learn how to use Python to build and train deep learning models.

Share

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

Similar courses

Here are nine courses similar to Data Science: Modern Deep Learning in Python.
TensorFlow for CNNs: Learn and Practice CNNs
Most relevant
Unsupervised Deep Learning in Python
Most relevant
TensorFlow for CNNs: Multi-Class Classification
Most relevant
TensorFlow for AI: Neural Network Representation
Most relevant
TensorFlow for AI: Applying Image Convolution
Most relevant
TensorFlow for CNNs: Object Recognition
Most relevant
TensorFlow for CNNs: Image Segmentation
Most relevant
TensorFlow for CNNs: Transfer Learning
Most relevant
TensorFlow for CNNs: Data Augmentation
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