Introduction
Neural networks are a different breed of models compared to the
supervised machine learning algorithms. Why do I say so? There are
multiple reasons for that, but the most prominent is the cost of running
algorithms on the hardware.
In today’s world, RAM on a machine is cheap and is available in
plenty. You need hundreds of GBs of RAM to run a super complex
supervised machine learning problem – it can be yours for a little
investment / rent. On the other hand, access to GPUs is not that cheap.
You need access to hundred GB VRAM on GPUs – it won’t be straight
forward and would involve significant costs.
Now, that may change in future. But for now, it means that we have to
be smarter about the way we use our resources in solving Deep Learning
problems. Especially so, when we try to solve complex real life problems
on areas like image and voice recognition. Once you have a few hidden
layers in your model, adding another layer of hidden layer would need
immense resources.
Thankfully, there is something called “Transfer Learning” which
enables us to use pre-trained models from other people by making small
changes. In this article, I am going to tell how we can use pre-trained
models to accelerate our solutions.
Note
–
This article assumes basic familiarity
with Neural networks and deep learning. If you are new to deep learning,
I would strongly recommend that you read the following articles first:
-
What is deep learning and why is it getting so much attention?
-
Deep Learning vs. Machine Learning – the essential differences you need to know!