The Science of Making Machines Learn

Written by Raman Grover

“Practice makes one perfect”. We employ this principle in our daily lives to get better at tasks. In achieving excellence in a task, be it speaking a foreign language, playing your favorite sport, writing articles or code or any other activity you may think of. With every repetition of a task, our mind and body almost magically take steps towards improving performance, develop alternate strategies or methods of completing the task at hand. Before we realize, we have a fair command over a given (reasonable) task as if we were born with expert craftsmanship. One is then said to having learned the task. What would it mean for a machine to experience or exhibit learning? A popular definition for machine learning was given by Tom Mitchell [1] — “A computer is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.’’ In other words, the computer demonstrates an improvement in its ability to perform a task after multiple repetitions, a behavior similar to what one would expect from species (such as humans) that exhibit intelligence. This blog offers an introduction to an extremely impactful branch of computer science — machine learning.

Humans (and other species) have an unfair advantage of having gone through years of biological evolution and having developed sophisticated mind and senses, that facilitate this incredible phenomena called learning. Our friend, a machine (or a computer) does not come any close to the complex machinery that exists within ourselves (and something we often take for granted). However, there is one task that a computer is extremely good at and is almost impossible to beat at — the task of playing with numbers, adding/multiplying them and doing all sort of mathematical operations. We as humans may speak and understand different languages, but computers just understand numbers. We have had considerable success in leveraging their unique power (in playing with numbers) to store and retrieve information (data), manipulate numbers (e.g. sort them) and even draw plots and insightful figures. All of this involved breaking the task into subtasks and expressing each as small mathematical operations on data. Although, the computer is repeating the tasks, it is by no means learning new ways to do the task by itself; it is instead following a strict sequence of steps (a.k.a algorithm) that must be provided a priori. In order to break the shackles of this traditional programming approach, we would need to think differently. As Einstein once famously remarked… “you cannot solve a problem with the same mindset you created it’’.

Before we discuss the different approaches to machine learning, it is worth noting some of the common tasks we would want the computers to learn and be good at (other than just crunching of numbers). A few example tasks include classification (e.g. identifying email as spam or ham), clustering (extracting patterns within data to segregate it into closed groups), or regression (predicting an attribute of an entity, e.g. price of a house, given its land area, neighborhood school rating etc.). Learning itself is categorized as being supervised learning, unsupervised learning or reinforcement learning. In supervised learning, the computer is provided with labelled examples of data and is eventually asked to determine the labels for unseen data. This is optimal, when we have a bunch (actually a ton) of examples and we sort of know the right answer (label) for each. However, we may not always have labelled data (labelling is typically done by involving people to ensure high quality). Deprived of any known correct answers, unsupervised learning offers to identify a hidden structure (if any) in the given data. Clustering is a widely used method for unsupervised learning. Reinforcement learning takes a different approach of associating with a given task, a notion of reward. It allows the computer program (referred to as agent) to take a set of allowed actions and acquire a well-defined state. The eventual goal is to derive a sequence of steps that maximize the reward. An apt example would be the computer playing chess, making valid moves (actions) to change the location of its chess pieces on the board (state) and with the reward of eliminating the opposition’s king piece.

For the sake of brevity, we shall not take a deeper dive into the above mentioned methods/techniques. However, it is worth introducing a powerful technique, popularly known as of Deep Learning. Deep Learning employs takes an alternate approach that involves studying the working of human brain and express its working principle as set of mathematical operations, that are well understood by a computer. Although, Deep Learning dates back to mid 60s [2], but has had less traction until recent advancements in the last decade. One of the reasons for its low adoption in its early years was dearth of a significant amount of data. Furthermore, the mathematics behind this approach involves numerous operations (majorly matrix multiplication) that are expensive/time consuming to perform on the then-available hardware.

We stop shy of divulging into further details and not offer anything more than an introduction that suffices in igniting the interest of a newbie. Machine Learning has emerged to become one of the most critical piece in our quest to make computers around us smarter and take unprecedented roles, be it recommending you a movie, recognizing your voice, translating literature to other languages, or even driving your car. We are amidst a revolution that is changing the way we interact with computers (and vice versa). Machine Learning is here to stay for long and push forward our imagination as what we can achieve from our number crunching machines.

References

1. http://machinelearningmastery.com/what-is-machine-learning

2. Ivakhnenko, A. G. (1973). Cybernetic Predicting Devices. CCM Information Corporation

About the Author:

Raman is a founding member of Humans For AI, a non-profit focused on building a more diverse workforce for the future leveraging AI technologies. Learn more about us and join us as we embark on this journey to make a difference!