Book Image

Learn Unity ML-Agents ??? Fundamentals of Unity Machine Learning

Book Image

Learn Unity ML-Agents ??? Fundamentals of Unity Machine Learning

Overview of this book

Unity Machine Learning agents allow researchers and developers to create games and simulations using the Unity Editor, which serves as an environment where intelligent agents can be trained with machine learning methods through a simple-to-use Python API. This book takes you from the basics of Reinforcement and Q Learning to building Deep Recurrent Q-Network agents that cooperate or compete in a multi-agent ecosystem. You will start with the basics of Reinforcement Learning and how to apply it to problems. Then you will learn how to build self-learning advanced neural networks with Python and Keras/TensorFlow. From there you move o n to more advanced training scenarios where you will learn further innovative ways to train your network with A3C, imitation, and curriculum learning models. By the end of the book, you will have learned how to build more complex environments by building a cooperative and competitive multi-agent ecosystem.
Table of Contents (8 chapters)

Decisions and On-Demand Decision Making

You may have noticed while playing the soccer (football) game in the previous exercise that the game went into slow motion at times. This is because the agent brains were consuming too much processing power, thus slowing the game's frame rate. This can be a problem, as we have seen from several agents running. The reason for this is that we are currently letting the agent/brains make a decision every five frames, or 1/12 second. While this is great for training, in a real game, we likely want our agents to respond at the same speed as a human would. This can remove the issue of performance since the agents now decide much less frequently. We can tune this using a feature called On-Demand Decision Making and Decision Frequency. Open up Unity to the last Soccer example we used and follow this exercise:

  1. Load up the SoccerTwos scene from...