Machine learning, or ML, is a branch of AI focused on creating computer systems that accomplish tasks without explicit instructions. Instead of being told step-by-step and case-by-case how to do something, ML systems "learn" by repeatedly processing "training data" (representative sets of example information). The results of the processing are graded by how close they are to a desired result. This process is repeated with the best-scoring algorithms and parameters used as the basis for new ones.
ML is useful when a set of input data is massive or unfeasible to process with a human-written algorithm.
The phrase "machine learning" was coined by IBM engineer and AI pioneer Arthur Samuel in 1959. He came up with the term to describe a computer he designed to play checkers, analyze previous games played, and improve its future play choices.
As a field of scientific study, ML branched off from AI in the 1970s and 1980s. At this time, scientists were experimenting with various AI techniques, including neural networks and inductive logic programming, to help computers intelligently process data. In the 1990s, ML shifted its focus from simulating intelligence to finding practical approaches to complex, massive data analysis.
Types of learning algorithms
- In supervised learning, every piece of training data has one input and one "label" (a pre-defined best output). An objective function is executed by the system to attempt to arrive at the output associated with that input. It then iterates on this function, modifying the parameters until the function can successfully process data not included in the training set.
- In unsupervised learning, training data is "unlabeled," meaning its desired output is not provided to the algorithm. These algorithms focus on finding patterns and structure in the data.
- In semi-supervised learning, some of the training data is labeled, and other data is not. Scientists have discovered that in some cases, these algorithms perform better than unsupervised learning, and more efficiently than supervised learning.
- In active learning, the algorithm tries to optimize the balance of supervision (knowing the outputs). It selects representative input data and asks a human to interactively provide the best output for those inputs. On the Internet, users are often asked to identify photographs to "prove you're human," which is referred to as a CAPTCHA. Answers to these tasks, such as "select all photos that contain traffic lights," are fed to active learning algorithms, such as those used to improve computer vision in autonomous vehicles.
- In reinforcement learning, algorithms focus on how to increase the chances of accumulating a quantifiable reward. An example of this kind of a cumulative reward is taking an opponent's piece in a chess game. In chess, a pawn is worth 1, knights and bishops are worth 3 (approximately the value of three pawns), a queen is worth 9, etc. Algorithms that increase material advantage as the game progresses increase the probability of winning the game. Reinforcement learning has applications in game theory, swarm intelligence, and genetic algorithms.
The following software and services implement ML:
- Amazon Machine Learning — Machine learning on the AWS cloud platform.
- Cloud AutoML — ML services hosted on the Google Cloud Platform.
- Cloud TPU — A proprietary Google service for accelerating machine learning.
- MATLAB — A numerical computing environment and programming language, developed by MathWorks.
- Mathematica — A computing, analysis, and visualization environment for advanced mathematics, created by Stephen Wolfram.
- Octave — An open-source programming language for scientific analysis and data visualization, developed by the GNU Project.
- Orange — An open-source ML and data mining environment suitable for novices, and scientists and professionals.
- PyTorch— A scalable deep learning platform integrated with the Python programming language, granting access to Python's vast array of data science libraries.
- Spark MLlib — An ML component of Spark, the open-source distributed computing platform developed by the Apache Software Foundation.
- Splunk — A software platform for real-time data analysis using ML, developed by Splunk. Inc.
- TensorFlow — An ML platform written in C++, Python, and CUDA. Developed by Google for internal use, it was open-sourced for public use in November 2015.