Machine Learning Algorithms


How do Machines Learn?


Having seen what is machine learning, lets try to see a glimpse of the implementations and applications.
Any application that anyone has developed, essentially takes an input to generates an output. It started with basic binary operations like AND, OR, NAND... Over the years, the relation and correlation between the input and output has evolved to be more and more complicated. Input is now a huge chunk of information accumulated over a long duration, from a variety of sources. Also the output now manifests as various expressions of the information over a variety of devices, over a duration of time. There are several intermediate steps in this relation of input and output. But, essentially any application continues to generate an output for a given input.
For a long time, developers went through the trouble of identifying this relation in English, and then translating it into code that uses several features of the programming language to implement the logic required. This was fine so long as the relation between input and output was simple enough to be understood and expressed in a human language. Reusing code in form of libraries and by partitioning the application into modules and layers, people managed to implement more and more complicated logic. But there was an end to this.
I can implement the logic only if I understand it precisely. Over time, the complication of our applications has grown beyond our own capacity to identify this logic. Consider for example, the problem of identifying a person from the photograph. We know roughly how this should be done. But, it takes a huge amount of analysis and effort to identify the precise relation in form of a formal logic.
This is where Machine Learning helps us. Instead of implementing identifying and implement the precise logic for each and every problem of this kind, it is a lot more easier to implement the logic that can learn such a complicated relation. Machine Learning is the process of letting the machine identify the relation between input and output and implement it by itself.
There are three main types of Machine Learning:

Supervised Learning

When you learn under supervision, you have someone to lead you to the answer and correct you if you are going wrong. That is exactly what supervised learning does. This algorithm works on defining a target variable which is to be predicted from a given set of input variables. Using the set of input and output variables, we generate a function that map inputs to desired outputs. The training process continues until the model achieves a desired level of accuracy on the training data.

Unsupervised Learning

Unsupervised learning does not have any supervision, to monitor if the learning is correct or in the right direction. There are no targets to be achieved - that can drive the application. Unsupervised learning is based on analyzing the input and identifying the inputs, clustering them based on their properties and expecting similarities between a cluster. It is widely used for segmenting customers in different groups for specific intervention.

Reinforcement Learning

Here, the machine is trained to make specific decisions. The machine trains itself continually using trial and error. This machine learns from past experience and tries to capture the best possible knowledge to make accurate business decisions.
Reinforcement seems to be similar to supervised learning. Many experts consider it to be just a special case of learning. The only difference here is on the focus on the end to end process rather than individual parts. Supervised learning has a concept of increasing and decreasing error that can be optimized. But in Reinforcement Learning, is required when the outcome is only right or wrong