I am working with multiclass
n_class=3 classification problem on a 3D Dataset input shape as such
[batch_size, channels, depth, height, width]. But I am always getting lower validation scores, here are the knows issues:
- The dataset is small, 41 volumes each of 51 Slice Images (each volume as a whole is input to the network).
- The classes are unbalanced (c1 = 21 samples, c2 = 12 samples, c3 = 8 samples)
- Dataset is a little noisy
Things I have done:
- Assign different weights to each classes (c1 getting the lowest)
- Histogram Equalization on images a preprocessing step.
- Shuffling the train/val dataloader
- Random train/val split.
- Increasing batch size
- Using different cost functions
- Regularization (adding more dropout layers)
- Reduce no of learning parameters
- Change models (Pretrained resnet 3D to more simpler models)
Things I have not done:
- Augmentation: I’m not exactly sure how to proceed with augmentation on Volume data, and which ones to specifically use for medical images.
I am training and testing within the same iteration, this is the kind of result i’m usually getting, this is a simpler model though, with Resnet3D and Resnet (2+1)D usually the results are much worse.
complete code, if someone can please have a look: