Machine Learning (or ”AI”) is an emerging computing discipline where computers are trained to do predictions based on data.
There are a few well-known applications you might have heard of, AlphaGo being one, where a computer beat the human world champion in the game GO. There are plenty of other applications where Machine Learning is used without us noticing it, from what to display in your social media feed to image detection and driver assistance.
How does Machine Learning work?
Let’s compare Machine Learning with traditional software development. A high level view of a software development process would be:
- Define the problem to be solved
- Model the world. If we are building software to calculate the velocity of a car, we might use a very simple model from Newtonian mechanics: Velocity = acceleration over time.
- Implement rules. We implement the model using code, together with a few boundary conditions. In software, this is referred to as business rules.
The Machine Learning process is different. With Machine Learning, we basically skip steps 2 and 3 and let the computer do this part for us. So the process becomes:
- Define the problem to be solved
- Prepare data (pre-process)
- Train or ML the application, using multiple iterative trials until the prediction is satisfactory.
- Test (validate the trained algorithm on real world data outside the training set)
OK, this is grossly oversimplifying it, but the key point to note is that we let the computer take over most parts of steps 2 and 3.
The different fields of Machine Learning
There are three main fields within Machine Learning:
- Machine Learning
- Deep Learning
- Reinforcement Learning
What they all have in common is that a computer program does some type of prediction from the given data and that through training, the algorithm is optimized. The key difference between these fields is the algorithms and the applications.
In Machine Learning, simple and quick statistical algorithms like Linear Regression, Decision trees, K-means clustering can be used to make predictions or to find patterns invisible to the human eye, from fairly small sets of data.
In Deep Learning, neural networks are used to predict (e.g. a stock will hit a price of 45) or classify (e.g. an image looks to be a 3). Deep learning generally requires a lot of available training data and more computational power to work. The upside is that they do produce higher accuracy.
In Reinforcement Learning, we train our AI engine to act as an agent. A good example is playing a game. Here the player is an agent in the game with one or many potential moves (actions). Google’s DeepMind was trained using Reinforcement Learning.
What are the benefits of Machine Learning?
Some commonly observed benefits are:
- Real time decisions. Trained models can make decisions, for example, on credit levels for loans.
- Make predictions where there are multiple, nonlinear dependencies.
- High accuracy. Today’s computer can interpret hand-written images with an accuracy of 95% (a level that is improving fast as we speak, it is probably already better).
If you combine the speed of prediction with a high level of accuracy, a computer can now make quick decisions in real time.
Some use cases for Machine Learning
Here are just a few:
- Autonomous driving – detecting what is happening around the vehicle.
- Recommendation engines – recommending songs based on the ones you’ve just listened to, or displaying similar items based on what you put in your shopping basket.
- Fraud detection.
- Credit increase.
- Medical diagnostics. For example, assisting doctors with spotting lung cancers by scanning chest X-rays.
Are machines taking over? What are the boundaries of AI?
As of today, it’s important to understand that Machine Learning applications are trained and engineered. They are not creative or self-aware in their own right. A few very clever humans trained them to be. AI’s are not self-learning, not yet!
How does ML impact software architecture?
- Here’s a a summary from our webinar August 2020 – ”AI and Machine Learning – the CTO essentials (slides)”
I want to get into Machine Learning, where do I start?
There are a few places:
- Kaggle has datasets and great guides for the beginner.
- So does OpenAI.
- Deeplearning.net is a good information source on neural network.
Or if you have an intriguing business challenge and want to get up and running with Machine Learning quickly, feel free to reach out to Crisp AI Labs at firstname.lastname@example.org.