
Learn how neural networks work by building them from scratch in Python, starting from math and simple data to handwritten digit recognition, using four evolving examples.
Start from zero and build neural networks from the ground up in Python, using simple math and list comprehensions without any machine learning library.
Join a free Discord space to ask questions and learn together with other students. Joining is optional; click the link in the course welcome message or video description to connect.
Demonstrate how neural networks fit into artificial intelligence and machine learning, compare regression and classification, and build from a single neuron to deep networks in python using supervised learning.
Learn to build a one neuron neural network modeling a linear relationship, using linear regression, batch gradient descent, and backpropagation to minimize the mean sum of errors cost.
Explore how cost functions measure prediction error, introduce mean squared error, and use derivatives and gradient descent to update weights through epochs, with backpropagation and bias considerations.
Add a bias to a neuron to move the Y-intercept, update weights and bias via back propagation with mean squared error, and train with tuned epochs and learning rate.
Learn how to fit a regression line for car maintenance costs by age using a neural network, with weights, biases, a training loop, and supervised learning.
Learn multiple linear regression with two inputs—age and mileage—training a neural network to predict maintenance costs, and explore data cleaning, normalization, and multicollinearity effects.
Normalize data to bring input features like age and mileage to a 0–1 range, then retrain the neural network to reveal how normalized inputs influence the regression plane and predictions.
Explore how gradient descent optimizes neural networks via batch updates, gradients, weight deltas, and bias adjustments, using all inputs at once, a transposed matrix, and learning rate.
Learn how neural networks evolve from linear regression to classification, using multiclass and binary logistic regression to classify digits zero through nine with 10 outputs and activation probabilities.
Explore sigmoid activation to convert outputs into probabilities for binary classification, replacing mean squared error with log loss, and extend to multiclass classification in neural networks.
Explore multiclass classification with softmax using three output neurons to predict flower colors from petal measurements, guided by matrix-based weights, one-hot targets, and log loss.
Explore how a two-layer neural network, a function approximator with softmax nonlinearity, struggles with nonlinear data and how adding a hidden layer improves classification of nonlinear patterns.
Add a hidden layer with ReLU activation to enable nonlinear data separation and backpropagate using w_i_h and w_h_o to reach up to 96 percent test accuracy.
Review how hidden layers enable learning non-linear data and how a plain Python network predicts car maintenance costs, keep-or-sell decisions, and flower colors.
Explore how random weight initialization influences neural network performance, address dead neurons by increasing hidden neurons and by using leaky ReLU alternatives, and preview mini-batch gradient descent.
Shuffle the dataset, divide into mini batches, and update weights and biases via mini batch gradient descent after processing each batch to train a neural network on 28x28 handwritten digits.
Build a from-scratch neural network in Python to recognize handwritten digits, with 784 input, 20 hidden, and 10 outputs, using ReLU and softmax and achieving about 85 percent accuracy.
Explore how to compute prediction differences using zip, tuple unpacking, and list comprehension on targets and predictions, turning four-element lists into a single differences list, showcased in a compact one-liner.
Conclude the course by reviewing how a single neural network performs linear regression and the impact of bias, then gradient descent with batch vs stochastic methods for handwritten numbers.
Explore alternatives to backpropagation by learning how to train neural networks with genetic algorithms in another course on self-driving cars, without libraries.
You will learn how to build Neural Networks with Python. Without the need for any library, you will see how a simple neural network from 4 lines of code, evolves into a artificial intelligence network that is able to recognize handwritten digits.
During this process, you will learn concepts like: Feed forward, Cost functions, Back propagation, Hidden layers, Linear regression, Gradient descent and Matrix multiplication. And all this with plain Python.
Target audience
Developers who especially benefit from this course, are:
Developer who want to learn the mechanics of neural networks
Developers who want to avoid using neural network libraries and frameworks
Or developers who use frameworks but want to learn the meaning of the individual network parameters
Challenges
Many tutorials claim to start from scratch, but import external libraries or rapidly type in code and before executing even once, you are looking at 50 lines of code. When finally the code is run, you are totally lost and still stuck trying to understand line 3.
This causes many students to give up learning Neural Networks.
This course is different! It starts with the absolute beginning and each topic is a continuation of a previous example. This way, you will learn neural networks from the ground up, step by step.
What can you do after this course?
You understand neural network concepts and ideas, like back propagation and gradient descent.
You are able to build a neural network in any programming language of choice, without the help of frameworks and libraries.
You understand how to better configure the network by plugging in different cost functions and adding hidden layers.
Topics
Linear regression
Cost functions
Bias
Multiple inputs
Normalisation
Gradient descent
Classification
Activation
Multi-class classification
Non-linear data
Hidden layers
Duration
3 hour video time. This course has no exercises.
The teacher
This course is taught by Loek van den Ouweland, a senior software engineer with 25 years of professional experience. Loek is the creator of Wunderlist for windows, Microsoft To-do and Mahjong for Windows and loves to teach software engineering.
Students of this course tell me:
* * * * * “Great, simple explanations. Perfect for beginners that have little pre knowledge of the topic.”
* * * * * “Straight to the point starting with the foundations.”
* * * * * “Clearly explained step by step how Neural Networks work and can be developed in a pure development language of choice without the usage of any external package..”