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)

Installing Python and tools

In this section, we will cover some of the basics of Python, but we do not have enough time to cover the language in depth. If you are new to Python but have plenty of programming experience with C#, you should be fine to proceed. For those of you with experience in Python, you may still want to pay special attention to the setup as, at the time of writing, ML-Agents is only supported by Python 3.5.

Python is a great language to learn if you are new to programming. However, for more experienced C# developers, it can be intimidating to learn a new language/framework that is outside the family, so to speak. After all, Python is more than a language: It is a multiple programming paradigm that also supports functional, aspect-orientated, and meta-programming. If you are not sure about learning a new language, do yourself a big favor and give Python a try...