Computers are getting smarter all the time. Whenever you search the web, open your email or use your phone, there are computers in the background working to enhance your experience. Many tasks that once required specialized human knowledge, such as translating text and identifying cancer cells, can now be performed with great accuracy with the click of a button. Pretty soon our cars will drive themselves.
Although the power of computer hardware tends to improve over time, the expansion of computers into so many domains of our lives is not simply a consequence of more memory and bigger, faster processors. No matter how powerful the computer, it is going to adapt slowly if it requires a human to program it. The key to many of the recent strides made in computing is machine learning: teaching computers to program themselves.
Machine Learning In Brief
Machine learning is a process where a computer automatically creates a model to optimize an objective given some input data. The model the computer learns is essentially a recipe that can be applied to new data. For instance, to create a spam detector, you could feed a computer many examples of spam and non-spam emails and have it generate a model you could later use to predict whether new emails are spam. A simple spam detector might learn a model that flags any email with more than one “$” in a row as spam and any other email as non-spam. Such a basic spam detector wouldn’t be particularly difficult to make by hand, but when given a lot of data and allowed to create more complicated models, computers can exploit subtle patterns in the data that can lead to models that perform very well on wide variety of tasks. The reason this process is called “machine learning” is that a human doesn’t have to explicitly program the computer to create the model–the computer must be provided with data, an objective and told what type of model to create, but the computer itself generates or “learns” the specifics of the model from the data itself.
Machine learning tasks can be divided into three general categories: supervised learning, unsupervised learning and reinforcement learning. Supervised learning describes tasks where the computer is supplied with data and a corresponding target label and then trained to build a model to predict that target. This process is called “supervised” because it requires the programmer to supply the computer with the target, so while the computer learns the model on its own, the human-provided labels inform the learning process. Any task where the ultimate goal is to generate a numeric prediction or assign a label to something like “spam” or “not spam” is an example of supervised learning. Supervised learning is the most prevalent of the three types of machine learning, likely because generating accurate predictions from data can be valuable in a wide variety of domains, from detecting spam email, to finding faces in images and to predicting whether someone will default on a loan.
Unsupervised learning describes machine learning techniques that operate on data that does not have corresponding target labels. The most common type of unsupervised learning models are clustering algorithms which attempt to take unlabeled data and group them into clusters of data points that share similar characteristics. For example, clustering algorithms can help companies segment their customers into groups that have different needs and spending habits, which can help the company better understand how to promote their products and services. Unsupervised learning can also help discover new variables or different representations of data that can be used to improve the performance of supervised learning models.
Reinforcement learning is a third type of machine learning where the computer learns to optimize an objective while taking actions in and receiving feedback from its environment. As the computer interacts with the environment and learns more about the consequences of its actions, it updates its model in an effort to better maximize the objective. Reinforcement learning can be used in situations where there are repeated interactions with an environment that provides some metric of payoffs or penalties that the computer can use to inform its decisions. Game playing is one of the most active areas in reinforcement learning research, since games typically have well-defined rules and provide an environment with repeated interactions along with scoring metrics that provide useful feedback to the computer. In fact, the best reinforcement learning models are now superior to humans at boards games like chess and go, once thought to be impossible for computers to conquer due to their computational complexity.
Machine Learning and Artificial Intelligence
Artificial intelligence is a field in computer science aimed at creating computer programs that make intelligent decisions while interacting with their environment. Machine learning is considered a subfield or branch of artificial intelligence. The data fed to a machine learning algorithm can be thought of as its environment, and the model it learns and the predictions it produces, as a sort of intelligence. It remains to be seen whether machine learning will ultimately help produce computers that fit a more traditional concept of artificial intelligence–machines that interact intelligently with humans real time–but one thing is for certain: machine learning is here to stay.