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)

ML-Agents external brains

Until now, all of our experiments have been with the heuristics brain using an internal RL algorithm called Q-learning. Now that we realize that C# scripts will only go so far, we can look at using ML-Agent external brains developed with Python. The preferred method for Unity is to run a Jupyter Python notebook externally to control the Unity training environment. This requires us to build a special Unity environment. Go through the following steps to learn how to configure the 3D ball environment for external training:

  1. Open the Unity editor and load the ML-Agents demo unityenvironment project. If you still have it open from the last chapter, then that will work as well.
  2. Open the 3DBall.scene in the ML-Agents/Examples/3DBall folder.
  3. Locate the Brain3DBrain object in the Hierarchy window and select it. In the Inspector window set the Brain Type to External...