Ceci est une ancienne révision du document !
I’ve recently begun reading up on machine learning, due in large part to recent advances and news articles. Specifically, recent reports on Leela Zero (Go AI), combined with the AlphaGo documentary I recently watched on Netflix. So, for anyone who may be interested in this topic, I wanted to cover a few basic points. If you’re not sure what machine learning is - feel free to also read on!
What is it?
Machine learning is a term that is generally associated with artificial intelligence. While machine learning is used in creating artificial intelligence, it is not the same thing. Machine learning is the approach to teaching a computer how to accomplish a task without explicitly programming it. Personally, I think of it as teaching a computer to recognize patterns and extrapolate conclusions, which works fine for a basic understanding.
Here’s an example - say you want to create an application capable of recognizing ingredients for a recipe from a single image. Programmatically, you’d have to define all the visual variables and somehow write a program to classify the key points properly and reach a conclusion. However, using machine learning, you would instead teach it by showing it images - various pictures of flour, eggs, butter, etc. By having control over your sample size (and correctly identifying them in advance), you can train your application to recognize what the images represent. Once the program understands the individual parts, you could train it to then recognize them in larger images.
Is this AI?
It depends on your definition of AI. In the Sci-Fi world, AI is often portrayed as (essentially) a super intelligent digital being (who often concludes that the human race is the cause of any number of problems). However, machine learning at its core only develops so-called “dumb” AI. This is essentially a piece of software that is extremely good at doing one task - in the example above, recognizing ingredients in photos. So far, any kind of AI we have or use falls into this category. And in the case of machine learning, I would make the case that not all applications are automatically AI - for me, AI implies a level of intelligence beyond “If A do B”, but more reasoning along the lines “If A is true, then perhaps Y or Z would be better than B”.
Who needs AI/machine learning?
Machine learning is generally applied in fields of study where explicit programming would fail due to the sheer amount of information and analysis the programmer would have to account for. Specifically, things like facial recognition (such as on Facebook or Google Photos), or recommendation engines (such as Amazon’s recommended products). These both deal with massive amounts of data that would need to be continually updated (for every new face, for example). Instead, we use machine learning to allow a program to recognize the same face (or pet), or to find similar products in a growing assortment.
Isn’t this a new technology?
The term “machine learning” was actually coined in 1959. And the concept, as such, has been around just as long. Until recently, however, the average computer was not up to the task and so research and availability of machine learning was severely limited. With the increase in computing power and the fall in costs, this has allowed more people to begin working with these systems.
How does it work?
There are new techniques and approaches that we have started to use. The most popular/common one seems to currently be the idea of a neural network, and is also what all of my examples typically describe. A neural network is very loosely inspired by biological neural networks (ie, the human brain), and is an interconnected group of neurons that have a specific function. Take the example of recognizing specifics of pets - the machine would learn aspects from a set of manually labelled images. And each neuron may be in charge of a defining trait (ie, does it have fur?). When an unknown image is input, the system then “fires” each of these neurons, and therefore eliminates possibilities until it has a reasonable chance at guessing correctly.
There are other approaches - decision trees, association rule learning, etc. But in most cases, the basic approach is the same - give the system a set of prepared data to train it, and then begin testing unlabeled data.
What about AlphaGo and Leela Zero?
Both of these AIs use something called deep learning - this is a step further from machine learning. While machine learning is dedicated to teaching systems to recognize specific patterns or accomplish specific tasks, deep learning is more abstract. Take AlphaGo for example - it was taught the rules of Go and was fed basic data from a few Go records. However, it then began playing against itself and learning from those encounters. As such, it didn’t have a specific goal in mind (beyond “play Go”). This application of pitting two versions of the system against each other helped AlphaGo learn the uncommon strategies it employed against Go professionals.
It also approaches the game with a fundamentally different method than human players. It is very certain in its ability to count the points on the board. As such, while human players may use moves to gain a substantial lead in points due to their uncertainty in counting, AlphaGo will instead focus on the percentage chance a move has to win the game - regardless of whether it wins by one point or one hundred. So while a human player may attempt a desperate move to increase their lead, it may have a lower chance of succeeding, while a safer move that keeps its lead the same will be preferred by AlphaGo.
Can we learn from AI?
Yes! AlphaGo released a teaching tool a while back, that essentially shows the decisions for each move it makes (represented as percentages). In doing so, people have discovered that AlphaGo believes the komi (the points white receives for going second in a game of Go which has steadily increased over the years) currently puts black at a disadvantage from the beginning of the game (the opening moves are all under 50% chance of winning). This has led professionals to re-examine some of the assumptions about the game. It has also popularized a few moves that were previously deemed “bad” and led to new styles. It has also massively increased the popularity of Go around the world (after AlphaGo played against Lee Sedol there was a worldwide shortage of Go boards).
How can I get into machine learning?
This depends on your current knowledge. If you’re comfortable in Python, the Google Developers YouTube channel has a good introduction to machine learning. A great deal of languages have machine learning packages, and so you should look for a tutorial in your language of choice. To get started, you shouldn’t need any hardware outside of a relatively modern computer.
Disclaimer
I feel that (in this type of article) I should clearly state that I am not an expert, and all details found here are my best understanding of the available facts and information I’ve found. As such, there may be mistakes.
I hope this article has inspired you (or informed you). If anyone has noticed any issues or corrections (or has a great resource for learning), feel free to email them to me. Similarly, if you have requests for articles or feedback for this one, you can reach me at lswest34+fcm@gmail.com.
Further Information
https://youtu.be/lvzekeBQsSo - Part 2 of a series. The video creates a recommendation engine for color schemes in the web.
https://youtu.be/cKxRvEZd3Mw - Part 1 of the Google Developer series (Python).
https://www.tensorflow.org/ - An open source machine learning framework
https://www.alphagomovie.com/ - the AlphaGo documentary (available on Netflix).
https://github.com/gcp/leela-zero - Leela Zero