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)

Imitation learning

Imitation learning is a cool training technique that we can use to train agents by example. This has tremendous benefits in complex training scenarios with repetitive actions. Games like Pong or Tennis are very good candidates for this type of training since the game action is repetitive. Since the agent is learning by example, the need for random search actions or exploration is eliminated and training performance improves dramatically. Unity has a Tennis example that makes a good candidate to demonstrate this type of training. Let's jump to the next exercise where we set up imitation learning:

  1. Open the Tennis scene located in the Assets/ML-Agents/Examples/Tennis folder.
  2. Locate the Agent brain object in the Hierarchy. Rename the object Student. Set the Brain Type to External.
  3. Select the Player brain object and rename it Teacher. Set the Brain Type to...