Game Engines and Machine Learning: Training a Self-Driving Car Without a Car?
Are you a scientist who wants to test a research problem without building costly and complicated real-world rigs? A self-driving car engineer who wants to test their AI logic in a constrained virtual world? A data scientist who needs to solve a thorny real-world problem without touching a production environment? Have you considered AI problem solving using game engines?
No? This session will teach you how to solve AI and ML problems using the Unity game engine, and Google’s TensorFlow for Python, as well as other popular ML tools.
In this session, we’ll show you ML and AI problem solving with game engines. Learn how you could use a game engine to train, explore, and manipulate intelligence agents that learn.
Game engines are a great place to explore ML and AI. They’re wonderful constrained problem spaces, tiny little ecosystems for you to explore a problem in. Here you can learn how to use them even though you’re not a game developer, with no game development experience required!
In this session, we’ll look at:
- how video game engines are a perfect environment to constrain a problem and train an agent
- how easy it is to get started, using the Unity engine and Google’s TensorFlow for Python
- how to build up a model, and use it in the engine, to explore a particular idea or problem
- PPO (proximal policy optimisation) for generic but useful machine learning
- deep reinforcement learning, and how it lets you explore and study complex behaviours
Specifically, this session will:
- teach the very basics of the Unity game engine
- explore how to setup a scene in Unity for both training and use of a ML model
- show how to train a model, using TensorFlow (and Docker), using the Unity scene
- discuss the use of the trained model, and potential applications
- show you how to train AI agents in complicated scenarios and make the real world better by leveraging the virtual
We’ll explore fun, engaging scenarios, including virtual self-driving cars, bipedal human-like walking robots, and disembodied hands that can play tennis.
This session is for non-game developers to learn how they can use game technologies to further their understanding of machine learning fundamentals, and solve problems using a combination of open source tools and (sadly often not open source) game engines. Deep reinforcement learning using virtual environments is the beginning of an exciting new wave of AI.
It’s a bit technical, a bit creative.
Outline/Structure of the Talk
We’ll discuss how and why game engines are the perfect biosphere for machine learning, and then dive into a demonstration and unpacking of the principles using the Unity game engine.
We’ll do the majority of the presentation live in the Unity engine, working through creating a scenario, training a machine learning model for/using it, and then implementing the model back into the game engine.
It will be very demonstration-driven, and we’ll ask questions of the room to drive what and how we do things. This will be very accessible to people who might not be familiar with game technologies.
Our pre-picked agenda, which will be modified based on audience suggestions (I.e. asking them what we should train) will be similar to this:
10 minutes introducing ML principles and general AI. - what is PPO (proximal policy optimisation) - what is ML vs AI - what problems can ML solve (and what can't it)
10 minutes showing how Unity connects to TensorFlow, and how techniques such as proximal policy optimisation (PPO) can be used through Python-powered tools - what is Unity - what Unity can do - how Unity works with TensorFlow - what you need to set it up (Python, TensorFlow, Unity)
10 minutes showing the sort of problems you can solve with Unity + Python: for example, training something to work, enemies in a video game, or more abstract scientific problems with visualisations. - training a quadruped to walk - training an enemy to follow a player in a video game - training a tennis robot - training a self driving car
(Obviously we won't be training live, since it takes ages, but we will prepare videos showing the process sped up, and the sort of inputs and outputs, and results you can get!)
You’ll learn how and why you might want to use game engines as part of your big data/AI/ML work. You’ll understand the sort of problems you can solve with game engines (that are not games) and how to use common ML tools with game engines to solve those problems.
Anyone! It will be technical but broadly accessible.
Prerequisites for Attendees
Nothing special. A broad knowledge of machine learning principles and/or game engines would make you understand quicker, but is not essential.