“When should I use deep learning?”
I get asked that question constantly.
The answer to this question is both complicated and simplistic at the same time.
The answer I usually give us something along the lines of ‘if you a lot of data and an interesting / challenging problem, then you should try out deep learning’.
How a much is ‘a lot of data’? That’s the complicated part.
Let’s use some examples to try to clarify things.
- If you have 5 years of monthly sales data and want to use deep learning to build a forecaster, you’ll most likely be wasting your time. Deep learning will work technically, but it generally won’t give you much better results than some simpler machine learning or even more simpler regression techniques.
- If you have 20 years of real estate sales data with multiple features (e.g., square footage of the house, location, comparables, etc etc) and want to try to predict sales prices within a neighborhood/state/country, then deep learning is definitely an approach to take. This a wonderful usage for deep learning.
- If you want to build a forecaster to help develop a budget for your organization, maybe deep learning is a good approach…and maybe it isn’t.
- If you want to build a “Hotdog Not Hotdog” app, deep learning is the right approach.
- If you want to forecast how many widgets you’ll need to build next year with the previous 10 years of data, I’d recommend going with regression first then moving into some basic machine learning techniques. Deep learning (e.g., neural networks) could work here but it might not make a lot of sense depending on the size of the data.
- If you want to predict movements in the stock market using the last 100 years of stock market data combined with hundreds of technical and/or fundamental indicators, deep learning could be a good approach but a good machine learning methodology would work as well. Just be careful of data mining and other bias’ you can introduce when working with time series data like the markets.
Ok. So I didn’t exactly clarify things, but hopefully you get the point.
Andrew Ng uses this graphic to highlight where deep learning make sense (from his Deeplearning.ai Coursera Course):
The various lines on the chart are different approaches (regression, machine learning, deep learning) with the ‘standard’ approaches of regression and machine learning shown in red/orange. You can see from the left of the chart that these types of approaches are similar performance-wise with small data sets.
Deep learning really begins to diverge in performance when your data-set starts to get sufficiently large. The ‘problem’ here is that ‘sufficiently large’ is hard to define. That’s why I usually tell people to start with the basics first and try out regression then move to machine learning (Random Forest, SVM’s, etc etc) and then – once you have a feel for your data AND the performance of your approach isn’t delivering the results you expected, then try out deep learning.
That said, there are obviously times that deep learning makes sense initially. When you are looking at things like machine vision, natural language processing, autonomous driving, text translation in real-time, etc you want to investigate deep learning right away. Additionally, you can use deep learning appraoches for any problem you want to, but the performance is best when you have a large data set.
So…when should you consider deep learning? It depends on the challenge you are trying to solve. Sorry…there’s not an ‘easy’ answer for the question.