Build self-driving cars with Genetic Algorithms from scratch
What you'll learn
- Create a Neural Network that translates car sensors to car controls
- Train a Neural Network with a Genetic Algorithm
- Combine Genetic Operators like Select, Cross over and Mutation
- Create a window and draw backgrounds and cars with Pyglet
- Build a car simulation to evolve car brains
- Choose and build a suitable fitness function
Requirements
- Beginner experience in Python or another programming language
- Basic math skills
- You have an interest in Artificial Intelligence
- Python 3.12 +
Description
Self-driving car experiments go back to 1939. But it took until the 1980’s when universities started to create true, autonomous cars. In Munich, a driverless Mercedes-Benz was going a whopping 130KM/H in 1984!
That is 81 miles per hour. And without crashing! The project received an astronomical funding of 749,000,000 Euros.
These days, you don’t need such budgets for artificial intelligence. All you need is a computer with Python on it! But where to start to build the AI for self-driving cars?
In this course you learn to build Neural Networks and Genetic Algorithms from the ground up. Without frameworks that hide all the interesting stuff in a black box, you are going to build a program that trains self-driving cars.
You will learn and assemble all the required building blocks and will be amazed that in no time cars are learning to drive autonomously. There is only one way to learn AI and that is to just pick a project and start building. That is what you are going to do in this course!
Target audience
Developers who especially benefit from this course, are:
developers who want to use their basic Python skills to program self-driving cars.
developers who want to understand Neural Networks and Genetic Algorithms by building them from the ground up.
Challenges
Artificial Intelligence is a black box to many developers. The problem is that many AI frameworks hide the details you need to understand how all the individual components work. The solution is to build things from the ground up and learn to create and combine genetic operators and what properties you can change to optimize the result. This course starts with an empty script and shows you every step that is needed to create autonomous cars that learn how to drive on tracks. Once you have seen the building blocks of a Genetic Algorithm, you can use them in your future projects!
What can you do after this course?
define what problems can be solved with Genetic Algorithms
build Neural Networks and Genetic Algorithms from the ground up
take any problem that can be solved with genetic algorithms and solve it by re-using the code you created in this course
Topics
AI Introduction: Neural Networks and the Genetic Algorithm
Car mechanics: Creating a window, drawing backgrounds and cars, controlling the car. Understanding track information
Neural Network: Inputs, outputs, sensors, activation, feed forward
Genetic Algorithm: Fitness, Chromosomes, Selection, Cross over and Mutation
Challenges: Slipping cars, Store the car brain, Stay in the middle of the road and Test Drives
Duration
2 hours video time, 6 hours including typing along.
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.
Who this course is for:
- developers who want to use their basic Python skills to program self-driving cars
- developers who want to understand Neural Networks and Genetic Algorithms by building them from the ground up
Instructor
Loek van den Ouweland (Wunderlist, Microsoft Todo) is a born teacher. Right from the start of his career, he was told that a programmer helps his customers best when he shows what his products can do and how they are built.
He worked in many companies as programmer and trainer and enjoys to share the secrets of programming with others.
Loek has 25 years of experience training people with different backgrounds, all ages, working in branches ranging from medical systems to manufacturing and academics to aerospace.