- Since there is a slight class imbalance, try the following: Balance Classes Using Class Weighting
- Include dropoutLayer and batchNormalizationLayer in your architecture
- Refer to Deep Learning Tips and Tricks
Avoiding overfitting using unetLayers
6 views (last 30 days)
Show older comments
Julius Å
on 6 Mar 2020
Answered: Srivardhan Gadila
on 14 Mar 2020
Hello!
I'm trying to get a unetLayers-network to work on a binary segmentation problem. I'm training the network on patches of CT-images where the goal is to segment the bone pixels from background pixels. Since bones in CT-images have high numerical values compared to background, this shouldn't be a difficult problem. However, my network keeps overfitting after approximately 1-2 epochs each time I train.
I have approximately 23000 training patches. There is a slight class imbalance in the extracted patches. The pixel count is:
{'background'} : 1.6879e+08
{'bone' } : 2.2309e+07
What I've tried so far to avoid overfitting:
- I tried adding augmentation according to: aug = imageDataAugmenter('RandRotation', [-20, 20], 'RandScale', [0.7 1.5]); as well as other types of augmentation.
- I tried adding different amounts of 'L2Regularization'.
- I tried making the 'EnoderDepth' smaller in order to reduce the complexity of the model.
What more can I try to remove the overfitting when I'm training my network on this data using the unetLayers-architecture?
0 Comments
Accepted Answer
Srivardhan Gadila
on 14 Mar 2020
The following are some suggestions:
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!