MATLAB: How to train net with high class imbalance

artificial intelligencecnndeep learningimage segmentation

Hi, I am doing a semantic segmentation that has a large difference between the two classes. So that, it tends to overpredict when I train the network. Is there any way to train the network specifically in one of the classes?
I am using classweights already, but as most of the pictures is background, the training accuracy tends to increase and the loss to decrease until constant, which generates zero accuracy when testing in the most important but imbalanced class.

Best Answer

Over-sampling can be one solution for that task. Copy the image of smaller classes so that the number of images in each class can balance and perform training using data augmentation function.