We may earn an affiliate commission when you visit our partners.
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.

This course will get you started in building your FIRST artificial neural network using deep learning techniques. Following my previous course on logistic regression, we take this basic building block, and build full-on non-linear neural networks right out of the gate using Python and Numpy. All the materials for this course are FREE.

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 will get you started in building your FIRST artificial neural network using deep learning techniques. Following my previous course on logistic regression, we take this basic building block, and build full-on non-linear neural networks right out of the gate using Python and Numpy. All the materials for this course are FREE.

We extend the previous binary classification model to multiple classes using the softmax function, and we derive the very important training method called "backpropagation" using first principles. I show you how to code backpropagation in Numpy, first "the slow way", and then "the fast way" using Numpy features.

Next, we implement a neural network using Google's new TensorFlow library.

You should take this course if you are interested in starting your journey toward becoming a master at deep learning, or if you are interested in machine learning and data science in general. We go beyond basic models like logistic regression and linear regression and I show you something that automatically learns features.

This course provides you with many practical examples so that you can really see how deep learning can be used on anything. Throughout the course, we'll do a course project, which will show you how to predict user actions on a website given user data like whether or not that user is on a mobile device, the number of products they viewed, how long they stayed on your site, whether or not they are a returning visitor, and what time of day they visited.

Another project at the end of the course shows you how you can use deep learning for facial expression recognition. Imagine being able to predict someone's emotions just based on a picture.

After getting your feet wet with the fundamentals, I provide a brief overview of some of the newest developments in neural networks - slightly modified architectures and what they are used for.

NOTE:

If you already know about softmax and backpropagation, and you want to skip over the theory and speed things up using more advanced techniques along with GPU-optimization, check out my follow-up course on this topic, Data Science: Practical Deep Learning Concepts in Theano and TensorFlow.

I have other courses that cover more advanced topics, such as Convolutional Neural Networks, Restricted Boltzmann Machines, Autoencoders, and more. But you want to be very comfortable with the material in this course before moving on to more advanced subjects.

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:

  • calculus (taking derivatives)

  • matrix arithmetic

  • probability

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

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

  • Be familiar with basic linear models such as linear regression and logistic regression

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

Syllabus

Introduction, outline, and administrative stuff

Overview of the course and prerequisites.

Where to get the code
How to Succeed in this Course
Read more

An almost purely qualitative description of neural networks.

What's the function we use to classify more than 2 things?

How do we code the softmax in Python?

Let's extend softmax and code the entire calculation from input to output.

How to code bacpropagation in Python using numpy operations vs. slow for loops.

What are the donut and XOR problems again?

We look again at the XOR and donut problem from logistic regression. The features are now learned automatically.

sigmoid, tanh, relu along with their derivatives

Tips on choosing learning rate, regularization penalty, number of hidden units, and number of hidden layers.

A look at Google's new TensorFlow library.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Python and Numpy to build non-linear neural networks, which are essential tools for modern machine learning and artificial intelligence development
Explores the softmax function and backpropagation, which are fundamental concepts for training neural networks and understanding how they learn
Includes a project on facial expression recognition, which offers practical experience in applying deep learning to real-world problems
Requires familiarity with calculus, matrix arithmetic, probability, and Python/Numpy coding, which may pose a challenge for some beginners
Teaches TensorFlow, which is a widely used library, but it is important to note that the course does not cover GPU optimization
Focuses on building and understanding rather than just using, which is valuable for deep learning, but may not suit learners seeking quick API usage

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Deep learning foundations from scratch

According to learners, this course offers a deep dive into the fundamentals of neural networks by emphasizing implementation from scratch using Python and Numpy. Many students highlight the course's strength in explaining complex theoretical concepts like backpropagation with exceptional clarity. While the approach of building models without high-level libraries like Keras or PyTorch is considered highly valuable for gaining a true understanding, some reviews note that this makes the course challenging and requires a strong background in math (calculus, linear algebra) and Python/Numpy coding. The course includes practical projects, although some feel the focus is more on theory than application using modern libraries. Recent reviews indicate the core concepts remain relevant.
Heavy on theory, less on modern libraries.
"While the theory is great, I wish there was more content on applying these concepts using modern frameworks like PyTorch."
"Too theoretical, not enough practical application using modern libraries."
"It delivers on teaching the 'how', but if you just want to use TensorFlow/Keras, this might be more depth than you need."
"The focus is on understanding, which is valuable, but it's not a course on becoming a deep learning practitioner using current tools."
Fundamentals remain valuable over time.
"Even though the TensorFlow section might show its age slightly, the core concepts of neural networks and backprop are timeless."
"The theoretical foundation provided is highly relevant and necessary even with advancements in libraries."
"The principles taught here are fundamental and will be useful regardless of future library updates."
"Good course, delivers on the promise of building from scratch. Prerequisites are important, don't skip them. TensorFlow part could be slightly updated, but core concepts are solid."
Difficult material, but provides deep understanding.
"It was challenging, especially the coding assignments, but the feeling of accomplishment and understanding is worth it."
"Definitely not a beginner course, but if you stick with it, you'll gain a solid foundation."
"This course pushes you, but you come out with a much deeper understanding than from easier, library-focused courses."
"Took effort to get through, but the payoff in understanding the mechanics is huge."
Complex backprop derivation is made understandable.
"The explanation of backpropagation is the clearest I've ever encountered. It finally clicked for me."
"Backprop derivation is explained step-by-step, making a difficult topic much more accessible."
"Best explanation of backprop I've found."
"I finally understood the intuition behind backpropagation thanks to the instructor's detailed breakdown."
Learn the core mechanics by coding algorithms.
"The focus on building algorithms from scratch is exactly what I needed to understand how deep learning truly works."
"I learned more about the mechanics of neural networks in this course than any other, specifically because we built everything ourselves."
"Excellent course if you really want to understand how NNs work. Building from scratch solidifies concepts."
"This course is great if you want to understand the low-level details instead of just using high-level libraries."
Needs solid math and coding background.
"Make sure your calculus and linear algebra are solid. The course goes deep and doesn't shy away from the math."
"This course requires a strong background in Python and Numpy, more so than I expected."
"Challenging course. The math and numpy implementation require focus."
"Assumes too much prior knowledge. Found it hard to follow without reviewing prerequisites extensively."

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: Deep Learning and Neural Networks in Python with these activities:
Review Linear Algebra Fundamentals
Reinforce your understanding of linear algebra concepts, which are essential for understanding the mathematical foundations of neural networks.
Browse courses on Linear Algebra
Show steps
  • Review matrix and vector operations.
  • Practice solving linear equations.
  • Understand linear transformations geometrically.
Brush Up on Calculus Concepts
Strengthen your calculus knowledge, particularly derivatives and gradient descent, which are crucial for understanding backpropagation.
Browse courses on Calculus
Show steps
  • Review differentiation rules.
  • Practice finding gradients of functions.
  • Understand the concept of optimization.
Read 'Deep Learning' by Goodfellow, Bengio, and Courville
Supplement your learning with a comprehensive textbook on deep learning to gain a deeper understanding of the concepts.
View Deep Learning on Amazon
Show steps
  • Read chapters related to the current course topics.
  • Work through the examples and exercises.
  • Take notes on key concepts and definitions.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Implement Backpropagation from Scratch
Solidify your understanding of backpropagation by implementing it from scratch using NumPy, reinforcing the concepts taught in the course.
Show steps
  • Review the backpropagation algorithm.
  • Implement forward and backward passes.
  • Test your implementation with sample data.
  • Debug and refine your code.
Create a Blog Post Explaining Softmax
Reinforce your understanding of the softmax function by writing a blog post explaining its purpose, implementation, and advantages.
Show steps
  • Research the softmax function thoroughly.
  • Write a clear and concise explanation.
  • Include examples and visualizations.
  • Publish your blog post online.
Build a Facial Expression Recognition System
Apply your knowledge to build a complete facial expression recognition system, extending the project introduced in the course.
Show steps
  • Gather and preprocess facial expression data.
  • Design and train a neural network model.
  • Evaluate the performance of your model.
  • Implement a user interface for real-time recognition.
Read 'Neural Networks and Deep Learning' by Michael Nielsen
Expand your understanding with a free online book that provides a clear and accessible introduction to neural networks.
View Melania on Amazon
Show steps
  • Read the chapters on backpropagation and neural network architectures.
  • Work through the interactive examples.
  • Experiment with the code snippets provided.

Career center

Learners who complete Data Science: Deep Learning and Neural Networks in Python will develop knowledge and skills that may be useful to these careers:
Deep Learning Engineer
A deep learning engineer designs and implements neural networks that enable machines to learn from vast amounts of data. This course provides the essential foundation for a deep learning engineer covering neural networks, backpropagation, and TensorFlow. This course takes a bottom-up approach, and learning the theories behind the models enhances one's ability to optimize and fine-tune neural networks for different applications. The focus on building and understanding, rather than just using, deep learning models makes this course especially beneficial.
Machine Learning Engineer
A machine learning engineer focuses on researching, building, and designing self-running artificial intelligence systems to automate predictive models. This course helps build a foundation in neural networks and deep learning by implementing these systems from scratch. Furthermore, the project on facial expression recognition gives practical experience in recognizing patterns using AI. Understanding backpropagation and softmax functions is key to this role. The course's hands-on approach, focusing on practical applications rather than just using libraries, aligns well with the problem-solving nature of a machine learning engineer.
Research Scientist
A research scientist conducts experiments and analyzes data to advance knowledge in a particular field, such as machine learning or artificial intelligence. This course helps build a strong theoretical and practical foundation in neural networks and deep learning. The emphasis on implementing algorithms from scratch, understanding backpropagation, and experimenting with different architectures helps develop a deep understanding of the underlying principles. The course's approach to visualization and experimentation aligns perfectly with the needs of a research scientist seeking to explore new frontiers in deep learning. An advanced degree, such as a Ph.D, is typically required.
Artificial Intelligence Developer
An artificial intelligence developer creates intelligent systems that can perform tasks that typically require human intelligence. This course helps build skills in developing and implementing AI algorithms, specifically in deep learning and neural networks. Learning to code backpropagation in Numpy and using TensorFlow are crucial for creating AI applications. Additionally, the facial expression recognition project allows for a closer look at image recognition, a common task with computer vision AI. The course's practical, hands-on approach to understanding and creating AI models aligns perfectly with the duties of an artificial intelligence developer.
Data Scientist
A data scientist analyzes large datasets to draw conclusions, predict outcomes, and make data-driven decisions. This course provides a solid introduction to deep learning and neural networks. The focus on implementing neural networks using Python and Numpy, along with TensorFlow, helps build a strong foundation in essential tools. The course project, predicting user actions on a website, offers experience with a common data science task. Studying this course helps a data scientist understand the inner workings of complex algorithms, enabling them to fine-tune models and improve predictive accuracy.
Computer Vision Engineer
A computer vision engineer develops algorithms that allow computers to 'see' and interpret images. This course provides an introduction to neural networks and deep learning, which are fundamental to computer vision. The facial expression recognition project provides practical experience in using deep learning for image-based tasks. Understanding how to implement neural networks, backpropagation, and using tools like TensorFlow helps a computer vision engineer develop complex image recognition and analysis systems. The course's focus on building and understanding empowers the engineer to tailor models for specific vision applications.
AI Ethicist
An artificial intelligence ethicist focuses on the moral and ethical implications of AI systems, ensuring they are developed and used responsibly. This course helps provide a solid understanding of how AI algorithms, specifically neural networks and deep learning models, are built and trained. Understanding the complexities of backpropagation, model training, and potential biases in data, as explored in the course, is crucial for assessing the ethical implications of AI. The course's practical examples and hands-on approach help an AI ethicist evaluate the potential risks and benefits of different AI applications, promoting responsible AI development and deployment.
Software Engineer
Software engineers design, develop, and test software applications. This course may be useful as it provides a relevant skillset in artificial intelligence and deep learning. Understanding how to implement neural networks using Python, Numpy, and TensorFlow helps integrate AI capabilities into software applications. The course project on facial expression recognition can inspire innovative features within software products that make use of image or facial recognition. This course helps equip them with the knowledge to incorporate machine learning into their projects.
Robotics Engineer
A robotics engineer designs, builds, and programs robots for various applications. This course can be useful, as it may provide the foundations in implementing neural networks, which are often used in robotics for tasks like perception and control. The facial expression recognition project could be useful for building robots that can interact with humans in a more intuitive way. This course helps provide the necessary skills to develop intelligent robots that can adapt to dynamic environments.
Data Analyst
A data analyst examines data to identify trends, answer questions, and provide actionable insights. This course may be useful, as it can help a data analyst build a foundation in machine learning and neural networks, which is increasingly relevant in the data analysis field. Understanding how to predict user actions on a website, as demonstrated in the course project, may be useful in analyzing user behavior and improving website performance. The course helps gain insight into the algorithms behind data analysis tools, enhancing their ability to interpret and present data effectively.
Natural Language Processing Engineer
A natural language processing engineer develops algorithms that enable computers to understand and process human language. While not directly focused on NLP, this course helps build a foundation in deep learning, which is increasingly used in NLP applications. Understanding neural networks, backpropagation, and TensorFlow helps one explore advanced NLP models such as recurrent neural networks and transformers. The course's focus on building and understanding deep learning models may be useful for a natural language processing engineer to adapt and customize for specific language-based tasks.
Quantitative Analyst
A quantitative analyst uses mathematical and statistical methods to solve problems in finance. This course can be useful as it provides a foundation in neural networks and deep learning, which are increasingly used for algorithmic trading and risk management. Understanding how to build and train neural networks, as taught in this course, can be applicable to develop predictive models for financial markets. This course helps provide skills to develop advanced analytical tools in finance.
Technology Consultant
A technology consultant advises organizations on how to use technology to meet their business goals. This course can be useful as it may provide a working knowledge of new techniques in artificial intelligence, neural networks, and deep learning. Understanding of TensorFlow can help in advising clients about appropriate AI solutions. A grasp of common machine learning models allows the consultant to guide technology decisions effectively. The course helps a technology consultant stay up-to-date with emerging AI trends.
Business Intelligence Analyst
A business intelligence analyst analyzes data to identify trends and insights that can help businesses make better decisions. This course can be useful as it provides knowledge of neural networks and deep learning. Understanding how to predict user actions on a website, like in the course project, can be applied to business intelligence to improve customer engagement and sales. This course helps a business intelligence analyst leverage machine learning to gain a deeper understanding of business data.
Data Architect
A data architect designs and manages the infrastructure for storing and processing data. This course can be useful as it may provide some fundamental knowledge of deep learning and neural networks, which are relevant to modern data processing pipelines. Understanding TensorFlow and backpropagation helps inform decisions about the infrastructure needed to support machine learning applications. This course helps provide some insights into the requirements for handling large-scale machine learning workloads.

Reading list

We've selected two 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: Deep Learning and Neural Networks in Python.
Provides a comprehensive overview of deep learning, covering both theoretical foundations and practical applications. It valuable reference for understanding the underlying principles of neural networks and their various architectures. This book is commonly used as a textbook at academic institutions. It adds significant depth to the course material.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser