- 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
2 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
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!