We may know the power of deep learning in AI/data science world. In this post, I would love to share some experience in working with deep learning (which has unfortunately not been applied in production due to the drawbacks):
1. Deep learning is computationally expensive:
I once was asked to model a time-series regression with a deep neural network.
After trained in the remote host for a couple of days, the testing on new coming data has been unsuccessfully passed as the model loading consumes a significant amount of time.
Yes, we already paid quite a lot for using a remote host, but in the end, the deep learning model can’t be in production.
The training process also requires a huge amount of data. This means if we want to improve the model performance, +GBs (or even +TBs) data should be a must. Unluckily, the more data are trained, the longer the training is. (Hence, more money will be charged)
Basically, deep learning is not a good idea (an over-investment) for small-medium enterprises or startups.
2. Deep learning is a black box:
How can we know how each layer behaves and what’s happening inside when we pressed model.train?
If we hardly understand inside the box, how can we interpret model structure to stake-holders, CEO, and technical lead?
Sometimes, I may even do not know why deep neural net perform well in this case but does not in another case. I faced an issue while the model performance is degraded when new data have a (slightly) different distribution compared with the training data.
Also, deep learning model contains multiple layers. The more (layer) we add, the harder we track how data are being processed unless I monitor and visualize each layer. The relationship between input and output is quite “invisible”.
Of course, there is another to open this blackbox by self-building the deep learning model from scratch (instead of using frameworks like kearas/tensorflow). However, this requires some deep technical/programming knowledge.