There are several main reasons to implement Machine Learning solutions, which work better when:
- Humans can do it, but can't explain how they do it. For instance, the case with optical character recognition. People are very good at this, but we aren't able to give a good set of programmable rules explaining how we do it. So there is a human labeling the data and the Machine Learning algorithms do the rule-learning for you.
- Each user, client, or location needs their own specific program. For instance, this is good for customized user interfaces. Rather than try to make a UI that pleases everyone, you can implement in a Machine Learning solution that interacts with the user and over time learns the best interface for that specific user.
- Human experts are rare or expensive. This is the case with the medical diagnoses where rather than having a doctor analyze every single x-ray, for example, we can use a machine-learned algorithm to do the work at a fraction of the cost. Expenses can come in the form of time as well. Any human can label images with appropriate tags, but if your company has hundreds of millions of them to label, even a few seconds equates to dozens of years of person-time to do the labeling.
- The application is helped by "super-human performance". That is, if your existing solution, automated or otherwise, could be significantly more profitable with small increases in accuracy, Machine Learning can provide that increase. For instance, this was once the case with handwritten digit recognition, e.g., the US postal service estimated that a single percent increase in accuracy from their current automated system would save them some hundreds of millions of dollars. The Machine Learning methods applied were able to provide this small improvement that saved them a significant amount of money.