Hey there !
So you are a programmer, wanting to master machine learning ?
You are at the right place.
Lets get started.
So, what exactly is machine learning ?
We as programmers, have been programming some pretty complex algorithms, which made our computers really smart. So how do we understand machine learning from the perspective of programmers ?
Machine learning and programming achieves the same purpose – as in both makes the computers do some useful work for us. The approaches are in exact opposition to each other.
While programming is about setting the rules to reach a particular output from inputs, machine learning is about finding these rules from existing output and work inwards.
While programming is intrinsic logic directly added by a programmer, machine learning is extrinsic – existing output data massaging a malleable function into shape, so that this function is the “new program” which can be put to use to find outputs from new previously unseen inputs.
And whats Deep learning ?
Its very tempting to help a function (which works backwards from output data) with what we know about the domain of the problem.
For example, when predicting the prices of houses in a city, we naturally would make use of our knowledge that it’s location in the city, the area of the house etc have a direct bearing on its price. These are called features of our function, which has to find the importance of each feature in predicting the output by working backwards.
Machine learning is what we call the data driven shaping of solution function (or program) when the features or the broader input variables are set by us.
When we have enough historical data (of inputs vs outputs) we have the luxury of the letting the function decide for itself which inputs are actually features (have a say in the output). This is more like larger program which makes use of sub routines to filter input signals to allow only relevant ones to enter the main routine. Only that the main routine and sub routines – all are shaped up by many iterations of massaging inwards by the historical data. Such a system which does automated feature selection and predicts output from the features so found, is know as a Deep learning system.
Deep learning systems obviously have more stacks of variables layered between input to output, to facilitate filtration or amplification of input signals as the need be, in preceding layers.