This article is the first in a series of posts in which I will talk about Artificial Intelligence and Machine Learning.
In this post, I’ll talk about some algorithms used in Machine Learning.
WARNING: Post with high technical content
Machine Learning is a topic of great interest today due to the rapid advances it has made in recent years, particularly with techniques currently known as Deep Learning.
Today, all the big players on the market offer Machine Learning solutions, in some cases with high-level solutions already packaged, and in others with lower level functions. The leading Cloud Computing providers (Google, Amazon, Microsoft, IBM, Alibaba, Baidu, Tencent) provide cloud solutions, but solutions are also emerging that work on mobile devices (from both Apple and Google).
Although it is possible to develop a solution with all these available Machine Learning services without in-depth knowledge of the technology, it is always good to have a certain level of understanding in order to grasp what is going on when we use these services.
The purpose of this article is to tell you what kind of problems can be solved using Machine Learning.
To begin with, we need to define three concepts that are widely used and sometimes mixed, confused or used interchangeably: Artificial Intelligence, Machine Learning and Deep Learning.
On one hand, Artificial Intelligence is about the intelligence that machines can demonstrate. It does not involve any particular technique. It is the broadest concept that encompasses all others.
Machine Learning, which is what we are going to talk about in this post, is concerned with giving computers the ability to learn without having to be programmed specifically for the task at hand.
Lastly, Deep Learning is basically Machine Learning using a type of neural network called Deep Neural Networks, with lots of data. This technology is what has led to breakthroughs in recent years.
Types of Machine Learning problems
The problems that can be solved by applying Machine Learning are of two kinds:
- Supervised Learning
- Unsupervised Learning
- Reinforcement Learning
Supervised Learning takes place when we have a set of data, and we know for that data what the correct answer is. What we don’t know is how to get from the data to the answer.
In the case of Unsupervised Learning, what we have is a data set, and what we are trying to do is to extract information from it, but without anyone telling the algorithm what we expect to find.
We could say that these are the extremes; also, that there may be nuances where we know some of the expected values, and in that case, we would have Partially Supervised Learning, but we will focus on the main categories.
Within the Supervised Learning category, we have two kinds of problems: Regression and Classification.
Regression is when we want to predict a result that varies in a continuous range. For example, given a person’s photo, determine their age. Another example might be to use the features of a home that is for sale to predict the most appropriate selling price.
Classification is for predicting discrete results. For example, given a patient with a tumor, determine whether the tumor is malignant or not. Another problem that falls into this category is for example, given the image of a handwritten one-digit number, to identify which digit it is.
With Unsupervised Learning, we seek to identify structures in the data. We do not have the answer for each case, so it is necessary for the algorithm to look for the relationships between the variables involved.
An example of this can be seen as follows: given a set of genes, find a way to group them according to the relationships between them.
One of the techniques used for unsupervised learning is Clustering, where the algorithm groups the input values according to certain criteria.
This can be used, for example, to suggest related products in a site or product sales application. In this case, the clusters can be the related products, which are used to make suggestions to the user who is viewing or buying a particular product.
Another technique that can be used is the Anomaly Detection technique, where the algorithm learns from the training data what the “normal” values of certain parameters are, and after training can indicate if any element falls out of the normal range.
This type of algorithm can be used, for example, to detect possible fraud in the use of credit cards, or to detect an abnormal operation in certain machinery.
This article took a quick look at some of the algorithms used in Machine Learning, explaining the characteristics of each one and giving examples of their use cases.
Lastly, Reinforcement Learning:
Reinforcement learning is learning what to do – how to assign actions to situations – in order to maximize a numerical reward signal. The learner is not told which actions to take, as in most forms of machine learning, but instead must discover which actions yield the most reward by trying them. Reinforcement learning is different from supervised learning in that the latter is learning from examples provided by some knowledgeable external supervisor. In interactive problems, it is often impractical to obtain examples of desired behavior that are both correct and representative of all the situations in which the agent has to act. In unfamiliar territory, where one would expect learning to be more beneficial, an agent must be able to learn from its own experience.
Reinforcement learning is so well known these days because it is the main algorithm used to solve different games and sometimes achieve superhuman performance. The most famous example is probably AlphaGo and AlphaGo Zero. AlphaGo, trained with countless human games, has already achieved superhuman performance by using the value network and the Monte Carlo Tree Search (MCTS) in its policy network. In addition, researchers later designed and tested a more pure reinforcement learning approach: training from scratch. As part of this approach, researchers let the new agent, AlphaGo Zero, play against itself and it finally beat AlphaGo 100-0.
In a later post we will see what problems have already been solved using Machine Learning, and also I will tell you what we are doing in GeneXus to facilitate their integration into our applications.