Machine learning is a scientific field in which instead of trying to code a limied behaviour program, we try to develop an algorithm that a computer can use to look at hundreds or thousands of examples (and the correct answers), and then the computer uses that experience to solve the same problem in new situations. Essentially, our goal is to teach the computer to solve by example, very similar to how we might teach a young child to distinguish a cat from a dog.
One of the big challenges with traditional machine learning models is a process called feature extraction. Specifically, the programmer needs to tell the computer what kinds of things it should be looking for that will be informative in making a decision. So it’s like teaching a computer over and again with a cat sitting on table or cat sitting in a garden. We never have to do that to a human brain, a child once taught what cat looks like they automatically points out a cat no matter where in the image cat is irrespective of whether cat is sleeping or playing or if the cat is white domestic or a black wild one. That is the whole idea behind Deep learning, that is to apply principles of human brain.
Feeding the algorithm raw data rarely ever works, so feature extraction is a critical part of the traditional machine learning workflow. This places a huge burden on the programmer, and the algorithm's effectiveness relies heavily on how insightful the programmer is. For complex problems such as object recognition or handwriting recognition, this is a huge challenge.