Learning
When we talk about software that learns, we’re referring to the ability to reason and improve cognitive function without being explicitly programmed. This is achieved by learning new models from data (think of them as experiences). Hence we can say a system learns if it can do task T from experience E with performance P, and P improves as E increases.
Generally speaking, there are 3 kinds of learning system:
#1 Supervised Learning
This is an inductive process (from examples to general rules), where an algorithm is supplied with labelled data (correct answers). This is typically used for approximation tasks such as:
- Regression — this involves numeric predications from continuous data
- Classification — labelling of data with one of a small set of discrete values
In addition to Linear and Logistic Regression, common supervised learning approaches include Decision Trees and Support Vector Machines.
In terms of optimisation, supervised learning attempts to find a model with the smallest difference between the known values and the model’s own predictions (with regression, this uses a measure of average error).
- Notes on Supervised Learning (coming soon)
- Supervised Learning (with Charles Isbell & Michael Littman), an online course by Udacity/Georgia Tech
#2 Unsupervised Learning
This type of learning is used when the source data is unlabelled, and the challenge is to find patterns or structure within it. This is typically used for descriptive (or summarisation) tasks, a typical example is Clustering, where the candidate categories are initially unknown, or image recognition.
The summaries produced by unsupervised learning provide a form of dimensionality reduction, and might even later be used as input into a supervised learning system.
In terms of optimisation, unsupervised learning seeks to find solutions that score well, in the absence of labelled data, the scoring system allows the algorithm to evaluate its own performance.
- Notes on Unsupervised Learning (coming soon)
- Unsupervised Learning (with Charles Isbell & Michael Littman), an online course by Udacity/Georgia Tech
#3 Reinforcement Learning
This is a process whereby some feedback is provided, sometimes long after a decision has been made. It is typically used for behavioural tasks, such as software agents, game playing and autonomous robots.
Unlike supervised learning, there are no correct input/output pairs, and suboptimal actions are not explicitly corrected.
This kind of learning is often found in realtime applications, where online responsiveness is important. Here performance will be a trade-off, speed of action versus deliberation, requiring a balance between exploration (of uncharted territory) and exploitation (of current knowledge).
In terms of optimisation, reinforcement learning seeks to find behaviours that result in outcomes that score well.
- Reinforcement Learning (with Charles Isbell & Michael Littman), an online course by Udacity/Georgia Tech