# When should I use feature learning as opposed to feature engineering?

With the advancement of deep learning and a few others automated features learning techniques, manual feature engineering started becoming obsolete.

Any suggestion on when to use manual feature engineering, feature learning or a combination of the two?

manual feature engineering started becoming obsolete

That is wrong.

Any suggestion on when to use manual feature engineering, feature learning or a combination of the two?

Deep learning is awesome for natural signals like images, audio or large amounts of unstructured text (e.g. arbitrary crawled websites)

There are some basic steps that make almost always sense. For example, for image recognition, it is the normalization from pixel color features in the range $$\{0, 1, \dots, 255 \}$$ to features in $$[0, 1]$$.

And then there are a lot of use cases where you have structured, CSV-like data. For those, every single case I had so far was improved by feature engineering. Most of the time you actually don't have a choice here as well: how would you feed in a date time object into a neural network?

Now, where does feature engineering make sense in image recognition?

• Resource limitations: neural networks often take a lot of resources. For example, viola-jones face detection is very resource friendly in contrast. But there are developments like the mobile net to relax that issue.

• Prior knowledge: for more special image data like CT scans you might observe super simple operations that almost give you the target. This might make it simpler to interpret the results at the end and, again, it helps to keep resource usage low.

One other field where I suspect that manual feature engineering could help is adversarial attacks. But for this I'm not 100% sure.

• Thanks for your answer. I agree with the overall philosophy but what I am looking at is an objective method to know if at all feature engineering should be used with automated feature learning. Nov 20 '18 at 8:54
• Selecting features and the operation on it heavily influences training. There is no golden hammer which is good in all contexts. Even if you restrict the context, it is super likely that there is a smaller / more specific problem set where the best thing to do is different. If this property applies, then there cannot be an objective best method. If there cannot be an objective best method, the choice of method is not objective. So my answer to your comment is: "There is no such thing." Nov 20 '18 at 10:08
• Great. Got your point :) Nov 21 '18 at 11:35