Multi-Task learning is a subfield of machine learning where your goal is to perform multiple related tasks at the same time. The system learns to perform the two tasks simultaneously such that both the tasks help in learning the other task. This is a way to mimic human intelligence i.e how humans performs multiple tasks at same time. For example — say if you see a dog, you can distinguish that its a dog and not a cat and also almost instantly, you may guess the breed of the dog. Taking other example — lets say, you see a person, you may correctly identify his gender and also guess his approximate age without giving a second thought.
This all happens inside our complex brain with billions of neurons interacting and activating together to perform this complex task of classification and recognition. For years researchers have tried to mimic this approach in field of computer vision which led to creation of Neural Networks. With advancement of research works and magical capabilities of Neural Networks in performing any single task, its quite interesting to employ it for performing multiple tasks. When we want to perform near similar tasks such as predicting color and texture then multitask is way more helpful as it helps in resource and parameter sharing across tasks and also reduces training time for training two models separately.
In this blog post I would share steps about how to perform “Multi Task Learning in Deep Neural Networks”. I have used TensorFlow’s Slim API for this task. Even if you are not aware of TensorFlow, then the general approach described here will be helpful to perform it in any other deep learning framework.