Machine Learning encompasses a broad range of techniques enabling software applications to better performance over a period of time.