let say we have 10 clusters and each cluster has 100 class in it,
first approach:
I selected 101 output for each cluster(100 for classes that included and 1 for the others) and trained the model. and I got good accuracy per each cluster( i also solve the unbiased problem of dataset). However, for test phase, I remove the extra class and concat the output of 10 cluster that lead to 1000 output. then I got almost almost zero accuracy. then I decided to go toward next approach:
second approach:
unlike the previous method I select only 100 class for each cluster( I don’t have the one extra class anymore) and train each clusters simultaneously, unlike the previous method that each clusters trained separately and concat later. Then I see the accuracy is around 0.01 and not changing. The thing is each one of the clusters’ model are as big as resnet(if you trace the path that each input will pass to get output, let say cluster1, the path is : General + Cluster1+ softmax. in this path General+cluster1 has the same size as the resnet with one difference that it finetuned for cluster1 which has 100 output class). So I’m thinking something is goes wrong at the backpropagation phase