Creating a program which defines standard rules can lead to a program capable of making “intelligent” decisions. However, this requires a deep understating of the procedure to be able to model it. Even if the application is well defined is hard to generalize it, as it is task-specific.
In some problems, it is difficult to determine the solution by just crafting the rules. For instance, classification of images in different categories such as dog, cats, and so on; can be quite challenging as the “perception” between human and machine is different.
For instance, a human being can recognize different animals easily, even if other things appear, whereas computers “understand” pixels values in which is extremely difficult to define what makes a dog or a cat.
Machine Learning aims to define all those rules by accessing a set of pictures representing the formulated problem. Thus, if we want our model to learn the characteristic of dog and cats, we have to provide the model with an interconnected dataset, contains pictures of dogs and cats.
Overall, someone can simply think the result of the machine learning model as a program which has learned distinguishing features of a dog or a cat.