Machine learning is becoming increasingly relevant today in trying to solve a host of problems. Essentially you are writing programs which are learning and getting better at doing something as more data is made available to them. A program gets better at telling users which products they might like as it learns more about user preferences and similarities between users.
I will be writing a series of posts about various aspects of machine learning. This is the first of them and therefore only logical to clarify in simple terms the core concepts and terms that are used all the time.
There are two types of machine learning
- Supervised Learning
- Unsupervised Learning
Supervised learning is all about creating a function which can infer a relationship between an input value and an output value.
Let’s see two examples
- You can train a function to predict house prices in the future – if you can feed it house prices from all the previous years. The more years you will provide the better its prediction will be. So you are feeding this function two things – house information (maybe size) – and prices in the previous years – and this function will then learn to predict the price of a house in 2017 or 2018 – given a new house.
- Another example can be given a house if it will sell for a certain price or not.
The first example, in machine learning terms, is called “Regression“. The second example is called “Classification”
So the formal definitions make more sense because
- Regression analysis is a statistical process for estimating the relationships among variables. In this case establishing relationship between house information and its price
- Classification is the problem of identifying to which of a set of categories (sub-populations) a new observation belongs. In this case, given a new house and its asking price will it “sell” or “not sell”.
In unsupervised learning, you don’t analyze historical inputs and outputs to predict a future output but you build relationship or inferences between data.
- Taking 1000’s of face snapshots and grouping them together by similarity or race.
- Recognizing voices and music from a mesh of voices
The first example is called “Clustering“, the second is an example of non-clustering unsupervised learning.
In order to solve the regression-type problems in supervised learning – we can use a statistical technique called Linear Regression.
Given a variable y and a number of variables X1, …, Xp that may be related to y, linear regression analysis can be applied to quantify the strength of the relationship between y and the Xj.
Recall our example – the relationship between house information (size, location etc) and the price.
Logistic Regression is used to solve the Classification problems in the supervised learning.
In this technique, you classify a variable into a state like “sell” “won’t sell”, “Healthy” or “Sick”, “Win” or “Lose” etc.
An Artificial Neural Network (ANN) is an information-processing technique that is inspired by the way biological nervous systems, such as the brain, process information. The key element of this paradigm is the novel structure of the information processing system. It is composed of a large number of highly interconnected processing elements (neurones) working in unison to solve specific problems.
Neural networks, like people, learn by example. They are used to solve a host of problems like pattern recognition and data classification
Deep learning is a term used for stacked Neural networks or multiple layers of Neural networks through which data passes. The more neural networks you will stack together the more complex task this deep network can perform.
Let’s imagine an example where you a provided with a jigsaw puzzle which has various human faces and you need to put it all together.
You may stack two neural networks to build the puzzle together. The first network will recognize different facial features – i.e. eyes- nose – ears etc. The second neural network will piece them together to form faces.