Only academia and some industries have the required budget and computing power to train an entire CNN from scratch, starting from random weights, on a massive dataset such as ImageNet.
Since this expensive and time-consuming work has already been done, it is a smart idea to reuse parts of the trained model to solve our classification problem.
In fact, it is possible to transfer what the network has learned from one dataset to a new one, thereby transferring the knowledge.
Transfer learning is the process of learning a new task by relying on a previously learned task: the learning process can be faster, more accurate, and require less training data.
The transfer learning idea is bright, and it can be successfully applied when using convolutional neural networks.
In fact, all convolutional architectures for classification have a fixed structure, and we can reuse...