I have been working on a binary segmentation task for months. I tried everything. My architecture was able to overfit a small dataset but never could converge on  the larger one. I even tried a pretrained encoder, but it also didn’t work, tried tuning other hyper-paramters, used learning rate schedulers and they also didn’t work. Today I tried Normalizing the output with mean 0 and std 0.5 and it worked although normalizing with mean 0.5 and std 0.5 does not work and the loss starts diverging. I wanted to ask why  normalizing the output has such a drastic effect and how can I find these value in future for other problems.