I'm following an AI course and we've just entered the deep learning chapter. Speaking about the difference between classic machine learning models and deep learning, it turns out one of the most relevant points in favor of a neural network is that it doesn't need the feature extraction phase. That's because it can implicit learn what are the most important features directly on data we give it as input. Conversely, a machine learning system heavily relies on feature extraction before it can start training.
I've found some useful questions about this topic on this site, but still I'm a bit confused in understanding what feature extraction actually is. So I've asked my teacher to provide me an example.
He gave me this example: suppose we have a huge dataset of images and we want to classify them based on the presence or absence of at least one tree in the picture. So, an image will be classified as 1 if it contains a tree, -1 otherwise.
- in the case of a neural network, we simply feed the images to the net with their labels. That's all. The network will learn what a tree is and will optimize its weights in order to detect them
- on the contrary, if we want to use a machine learning algorithm, we also have to tell the model what a tree actually is, in addition to the labeled images. This part is the feature extraction phase
I don't understand how can I tell to a model what a tree is inside an image. I thought discover it is part of the task of the machine learning algorithm.