The problem with machine learning is that once you run out of material to teach it, you wont make any further progress. And, of corurse, you can never be sure what the machine has learned, exactly.
The classical example (whether true or not) is the military attempt to teach a computer to spot tanks hidden in bushes. So they photographed lots of bushes with tanks, and lots of bushes without tanks. After some crunching, the computer was able to tell the difference.
Real life tests, however, failed utterly. Eventually someone noticed that all the pictures with tanks were taken on sunny days, and the other pictures on cloudy days. The computer had learned to tell the diference between nice weather and cloudy weather.
This is why you need a tremendous amount of data to train the machine with.