Machine Learning is developing at a very accelerated pace. Some science behind it has been around for decades, but what is truly outstanding in today’s AI scene are the tools.
The final AI software that makes “decisions” and performs his AI tasks is called an “AI agent”. This agent can be built in numerous ways, using a big number of tools. The most important factor is its end goal. There are classifying problems – in which the AI agent is tasked with labelling items; game-type objective; there are a lot of use cases in the world. But the main thing is that there are 3 big categories under which these tasks fall into. There are: supervised learning, unsupervised learning and reinforcement-learning.
When applying supervised learning workflows, you are expecting your agent to learn from a model and then improve its ability based on its performance.
Example: The agent is provided with a training set of images of cats and dogs. Each image comes with a label on which it says whether there is a cat or a dog in the image. The agent learns to differentiate between images of dogs and images of cats.
Later on, after the agent has trained on the provided data, we can evaluate its accuracy of differentiating between dog pictures and cat pictures. We provide a testing set of data (a new set of labelled pictures of cats and dogs) and we run the agent on that testing set. After the agent is done, we can see how many times it got the right answer and how many times it mistook a cat for a dog).
Not only can we evaluate the agent, but we can use the results to make the AI agent even better. It will not repeat its mistakes and it will become better skilled at differentiating between these types of pictures.
This type of workflow is best used when there are no available labels to give the AI agent to train on. In most real-life cases there won’t be any prior datasheet with the correct answers to train the agent on what is “wrong” and what is “right”.
There are, however, other algorithms that the software can apply in order to make accurate predictions. It can look for patterns and then seek those patterns in the data it’s provided with.
A common workflow is clustering. This method implies allocating a number of “buckets” for the items provided to be placed into. The agent looks for similarities between the items provided, and places each item in the relevant bucket. It is a useful way of making sense of data that is not labelled, but there are other methods as well, and the use case will dictate which is the best approach.
This approach is the most game-like approach. We are basically throwing our AI agent into a game world.
Imagine that this game world is your favourite game. The agent is pressing random buttons on his controls and eventually fails the game. After a number of tries, the agent figures out which actions get him closer to his goals and keep him from losing. The agent is making use of something called the Bellman Equation. It is a formula for taking useful action, as opposed to making choices that will lead to losing the game.
This is the approach that DeepMind used when they trained their AlphaGo and AlphaZero agents – the ones that beat international go and chess champions.
This is a really cool application for any video game that is out there. I find it really awesome! Agents can even be used to adjust to the players style or difficulty level. And the agent can even react and change it’s behaviour based on how the player plays the game, or the items and locations it uses most.
A new era of gaming is upon us! I’m sure many game development companies will release amazing games that make use of AI and Machine Learning.
Here we have a demo of Super Mario played by an AI agent:
The Best Choice
All algorithms have been created with certain use cases in mind. Some were limited by the available technology (and underlying algorithms) available at that time, but the science of AI is developing fast. Each year there are new breakthrough things built.
NVidia, for instance, has built an AI agent that creates whole game worlds in a matter of minutes. And currently Blizzard is still improving is StarCraft 2 AI agent on the game replays of real-world players. This can be found on their battle.net launcher.
The bottom line is that there is no best use case. There are different instruments built for different types of jobs. If there is labelled data provided, then we can use Supervised Learning to classify the data. If we are given a video game, then Reinforcement Learning is the way to go.
Algorithms can also be built one on top of each other to create even more complex (and well-performing, ideally) agents. There is a lot of space available for experimentation, but at its base, machine learning agents make us of one the three mentioned methods.