2
$\begingroup$

I have multiclass classification dataset and I am using Deep nets for the classification task. To explain the problem, let's assume that I have 5 classes to classify. No matter what I try, be it hyperparameter tuning or trying out different architectures including CNN and RNN, I am not able to separate 2 out of these 5 classes. I mean it is classifying, but classification accuracy between these 2 classes is not going above 60 %.

What could be the reasons for these? Are these two classes truly inseparable? It only takes about 10 epochs for the training accuracy to hit 100 % but the validation accuracy never improves after 55 to 60 %. The models overfit so easily, still no matter what I try to prevent overfitting like early stopping, Dropout etc nothing works, it either overfits or under fits.

At this point, I assume that the train and test datasets are not similar, I mean they both could be from different distributions. How can I know if my train and test data follows the same distribution? More generally, how to find out that the train and test datasets are somewhat similar? If the classes are truly difficult to separate, then the training task should also be difficult, isn't it?

$\endgroup$
4
  • $\begingroup$ Have you tried splitting stratified? Or just a different split? $\endgroup$ Commented Aug 18, 2018 at 12:01
  • $\begingroup$ I have two separate files, one each for test and train for each class i.e, for example, class 1 train and class 1 test. I am sampling the validation set from the available test set. That's why I think the test and train data could be from different distribution? I wanted to know if it is possible to somehow figure this out? The results are still poor even if I perform an independent evaluation of the model using the available test set. To make things more clear, I want to know if class 1 train and class 1 test could come from different distributions? Could there be a "covariate shift" ? $\endgroup$
    – Ambarish
    Commented Aug 18, 2018 at 12:28
  • $\begingroup$ I don't understand that. Do you mean to say the train and test set are different files, or that you generate them from different files? In case of the former, that just seems like a technical issue, not a reason to not make a new split. In case of the latter, you'll have to give more details on how and why you're doing this. $\endgroup$ Commented Aug 18, 2018 at 13:44
  • $\begingroup$ It's the Former, my train and test are different files. $\endgroup$
    – Ambarish
    Commented Aug 18, 2018 at 13:47

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.