The unreasonable effectiveness of data
Our first deep learning models on the binary classification task had fewer than 4,000 records. We did this so you could run the example quickly. For deep learning, you really need a lot more data, so we created a more complicated model with a lot more data, which gave us an increase in accuracy. This process demonstrated the following:
- Establishing a baseline with other machine learning algorithms provides a good benchmark before using a deep learning model
- We had to create a more complex model and adjust the hyper-parameters for our bigger dataset
- The Unreasonable Effectiveness of Data
The last point here is borrowed from an article by Peter Norvig, available at https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf. There is also a YouTube video with the same name. One of the main points in Norvig's article is this: invariably simple models and a lot of data trump more elaborate models based on less data.
We have increased the accuracy on our deep learning model by 0.38%. Considering that our dataset has highly correlated variables and that our domain is modelling human activities, this is not bad. People are, well predictable; so when attempting to predict what they do next, a small dataset usually works. In other domains, adding more data has much more of an effect. Consider a complex image-recognition task with color images where the image quality and format are not consistent. In that case, increasing our training data by a factor of 10 would have much more of an effect than in the earlier example. For many deep learning projects, you should include tasks to acquire more data from the very beginning of the project. This can be done by manually labeling the data, by outsourcing tasks (Amazon Turk), or by building some form of feedback mechanism in your application.
While other machine learning algorithms may also see an improvement in performance with more data, eventually adding more data will stop making a difference and performance will stagnate. This is because these algorithms were never designed for large high-dimensional data and so cannot model the complex patterns in very large datasets. However, you can build increasingly complex deep learning architectures that can model these complex patterns. This following plot illustrates how deep learning algorithms can continue to take advantage of more data and performance can still improve after performance on other machine algorithms stagnates: