I am trying to train a neural network for which I have two datasets. As an example, let's imagine that the objective of the network is to recognise dog races. In my real problem the data are not images, but I think this will make it easier to understand.
- The first dataset contains a lot of varied sample examples and we can assume, for this problem, that it has little to no bias. We have images of many dog races, the dogs are in different positions and in different places.
- The second dataset contains a particular case that is not represented in the first dataset, but the structure of the data makes it so that it has a clear bias. We have images only of Golden Retrievers, the dogs are in different positions but are always in a background with grass.
I am looking for approaches where, in the end, a single neural network is able to predict the race of a dog based on the picture. How can I add the information regarding Golden Retrievers (from dataset 2) without introducing the bias of its dataset (relating Golden Retrievers to grass/green background).
Some initial ideas:
- Data augmentation: cut the dogs out of the biased background and paste them on other backgrounds. How to properly control for artifacts introduced by this method?
- Slow training: first train on dataset 1, and then slowly train on the second dataset with a very slow learning rate. Perhaps freeze the weights of some layers. Based on this (question/answer).
- Using a GAN to train the network to not learn the bias. Based on this paper.