From the time I was born, I have been fascinated by the ideas of Machine Learning and Artificial Intelligence. I didn’t know it at the time, but the movie Star Wars (later titled A New Hope) was impacting me profoundly when it first introduced me to machines that can think. For my childhood mind, the characters of C-3PO and R2-D2 moving around onscreen and communicating with each other and others didn’t seem far fetched at all. Little did I know that I would end up in a field where it is my reality to create machines that have some level of intelligence and that can communicate together.
Before we get into the uses of Machine Learning, it’s important to learn a little about how it came to be and how it works.
Machine Learning is a subset of Artificial Intelligence
Artificial Intelligence is the broad field of trying to create thinking machines. Machine Learning is one of the building blocks of Artificial Intelligence. In Machine Learning, we build computer systems that can learn by example without explicitly being programmed to follow an algorithm.
Machine Learning has been around for a long time in both science fiction and actual real life science. It got its best weapon in 1986 when Geoffrey Hinton published a paper on backpropagation. This was the foundation of Neural Networks and Deep Learning, teaching a machine through examples and using those examples to solve unknown problems. This technique kicked off the Artificial Intelligence revolution of the past 15 years or so. With modern computers we can finally take advantage of deep learning and backpropagation as they were intended.
It’s important to note, that when implementing Machine Learning, it takes lots of examples to build a good model. They will train the Machine Learning algorithm to generalize a solution. This training data needs to have plenty of examples of both positive and negative results. The more data you provide the system to learn from, generally the better your results will be. This is not always true, as you can provide the wrong kinds of data or too many or few examples.
Machine Learning needs the right fit
It is important in Machine Learning to provide the right amount of training examples and the right kinds of examples. If you do not, you can run into issues with your model and algorithm. These issues are described as overfitting and underfitting.
Overfitting is when you provide so much training data that the algorithm cannot generalize a result from the training data. Instead, it chooses the examples in the training data as the only fit.
The opposite is true as well. This is where we encounter underfitting. Underfitting is when you don’t provide enough training data. In this case, the model does not provide the right fit because it hasn’t seen enough examples.
An easy way to think about fit, might be by using an example. For this example, let’s say you are building a model to identify cats in pictures. If you only train your model with pictures of Tabby cats, you will create a situation where the model is overfit for choosing Tabby cats, and underfit for choosing other types of cats. Also, what would happen if you provided a picture of a dog? The model has no concept of a dog. It would think the dog was a cat.
Types of Machine Learning
Machine Learning can be broken down into three main types of learning:
- Supervised Learning
- Unsupervised Learning
- Reinforcement Learning
Let’s take a deeper dive into how these types of learning are different.
In Supervised Learning, our training data that we provide to build our model has categorized and labeled information. If we go back to our cat images training model, remember the goal is to identify whether an image contains a cat or not. To train our model, we would provide pictures of Tabby cats and label them as a cat. Then we would provide pictures of Siamese cats and label them as a cat. We would do this with many types of cats. When we provided pictures of dogs, racoons, buses, humans, or anything else, we would label them indicating they are not cats.
The model when fed with a picture of a dog would then be able to determine it was not looking at a cat because it had examples to train it that a dog is not a cat. But the real magic is when it would be presented with a cat in which it had never seen the type before, perhaps a Maine Coon cat, it would still answer that it was a cat. It would be able to do this because it would be able to generalize that answer from previous examples of what was and was not a cat.
In Unsupervised Learning, the model is trained on data, but not told about the labels of the data. It has to determine through observation what things are similar and what are different. The training algorithm does this through a process known as clustering. In our cat identification example, the algorithm would analyze pictures of different types of cats, pictures of dogs, racoons, buses, humans, etc. It would then group them by their similarities. Then when fed the picture of a Maine Coon cat, it would group that picture with the pictures of cats, because it was most similar. The algorithm doesn’t know to call them cats, but it knows they are all similar.
Reinforcement Learning is a learning system that rewards more fit solutions and penalizes less fit solutions. Think of it like a game with a score. It’s trying to win the game by getting points or high value scores. You might also think of it like training a dog with praise and dog treats. You reward the good behavior. The dog then remembers how good that treat tastes and how good the praise felt. The dog also remembers how bad it was when you said, “No!” in a stern voice and there was no treat in cases where it misbehaved. It opts for things that get it that awesome treat and praise!
One example of Reinforcement Learning is the Genetic Algorithm. In a Genetic Algorithm the algorithm mimics natural selection and evolution. Each evolution introduces random mutations and only the fittest models survive. We measure the fitness of the models by a fitness score. When thought of as a score, the score would represent the fittest solution.
One thing to note about solving problems with Genetic Algorithms is that they choose the globally optimal solution, but they don’t always choose the most optimal solution. They will arrive at a solution that is most optimal for the given path through the evolutions, which oftentimes will get very close to the most optimal solution, if not achieve it.
A good example of this idea is the Traveling Salesman Problem. In this problem and solution, we are presented a series of locations that a salesman has to visit in a day. The salesman needs to choose the best path through all of the locations to minimize the distance he travels so that he visits every location once. In the solution to the problem, we’d calculate fitness as the total distance traveled, and the best fitness being the smallest fitness score or the shortest distance. Depending on the implementation, this problem can be solved in several evolutions and is quite fun to play around with.
Machine Learning is everywhere
Now, armed with an understanding of Machine Learning, it’s important to appreciate how far Machine Learning has penetrated into our everyday lives. Machine Learning is a part of recommendation systems that exist at Netflix, Amazon, YouTube, and Spotify. It also exists in search engines, social networks and proprietary advertising platforms by Google, Twitter, Facebook, LinkedIn and others. It also exists in your smart products like your smart TVs, streaming platforms like Roku or Amazon Firestick, or your voice activated products like Amazon Alexa, Google Home, or Apple Siri. There are countless implementations out there, including in finances, healthcare, and government.
Machine Learning is the foundation for Artificial Intelligence. It is not just the stuff of my childhood dreams of being Luke Skywalker or Han Solo talking to C-3PO or R2-D2. This is real technology, and it is everywhere around us. We interact with it every single day. Machine Learning is the here and now. Now that you know about Machine Learning, you can get started building your own recommendation engine, genetic algorithm, voice recognition system or maybe even create your own C-3PO or R2-D2.
Are you thinking about implementing Machine Learning or Artificial Intelligence? Read about our Machine Learning and Artificial Intelligence service and read a case study about how we were able to help a small business with our services.