Popular Posts

Thursday, December 3, 2015

Machine Learning is Learning a Machine more than a Learning Machine



What is Machine Learning



Before we ask what Machine Learning is, we would do well to clarify what we mean by a machine. In normal usage we refer to any device that performs a job as machine whether it is a kitchen appliance or a lathe. In computing, a machine is not something physical. Rather it is refers to a type of computer program. Just like a physical device, a machine in this case is a program that can be configured to perform a task subject to some rules. Let  start with a definition:



Definition [Mitchell]: A computer program 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. 


Informally, a machine learns when its performance improves with more data. Consider an example like weather forecasting. We would like to create a machine that could predict the maximum temperature to-morrow. To do that we could create a model that computes likely values given today's temperature, humidity level and other such measurements. Assuming that it is workable model, the learning consists of generating a function f(temperature,humidity,...) that computes the predicted temperature. One way of modelling this function would be to compute a linear combination of predictors:

β0 + β1 *temperature + β2*humidity.



In this case learning consists of computing β0 ,  β1 and β2 based on past records such that predicted value matches the actual results closely. One would expect that the prediction will improve if the volume of historical data is increased. This improvement is referred to as learning.  What has just been described is known as linear regression, a technique known for more than a century. There are many models that can be used. It is possible to combine many such models to provide a composite machine.
 


Notice that the machine cannot pick the predictors at random, although given a large number of predictors the machine learning model can select the best predictors. The choice of predictors is still mostly human. However a day may come when there are a large number of machine learning systems and a meta learning program can identify from its vast repository of learned machines the most suitable factors that can be used to model a new learning task. Although we are not there yet, programs like IBM's Watson give a good idea of what the future portends.


What Machine Learning is Not


Machine learning involves uncertainity. When a problem is well defined it is no more a case of Machine Learning; it is a search problem or an optimisation problem. 'Where is the closest Starbucks?' is a search problem. 'Will there be a Starbucks within a 5 mile radius one year from now?' is a machine learning problem.

Applications of Machine Learning

Based on the past growth it is safe to assume that there are still a large number of applications of machine learning that people have yet to discover. To discover the promising new ones it would be good to have an idea as to what the current applications are. As Steve Jobs once said "Good artists copy, great artists steal." Here are a few:

  • Computer Vision
  • Text analysis to authenticate literary works
  • Spam detection
  • Speech recognition
  • Speech synthesis
  • Robotics
  • Prediction: Which candidate is more likely to complete a Ph.D. Thesis?
  • Which toddler is likely to have learning difficulties?
  • Which employee will stick around for five years?
  • Recommender Systems for movies, books, fashion accessories
  • Fault diagnosis of machines
  • Medical Diagnosis
  • Performance Analysis and Tuning of Computer Systems
  • Predicting house Prices
  • Economic Forecast
What I would like to see:
  • Predicting marriage success
  • Predicting potential terrorists
  • Predicting potential mass murders
  • Analysing cargo movements to detect contraband trafficking.
and on a more techical level:
  • Generating Unit Tests
  • Software debugging using crash dumps and code analysis
  • Analysing network protocols to predict failure and congestion scenarios and
  • Analysing multi-threaded applications to locate deadloacks and starvation
Reference:
[1] Tom M. Mitchell, "Machine Learning," McGraw-Hill, 1997.

No comments: