I made a stack of bidirectional LSTM layers following by Dense layers (with swish activation functions) in order to predict a continuous value between 0 and 2. I compiled the model with mean_squared_error loss function and Adam optimizer. I have a batch size of 32.
The issue I encounter is that the extremities are under predicted by the network. i.e The prediction doesn't go upper ~1.85 and lower ~ 0.15. I would like to affine the prediction in the extremities. See image below (the point at 2:2 is not part of the LSTM prediction):
I tried to min-max scaled the labels from 0 to 1 instead of 0-2 and I tried other activation functions (sigmoid, linenar) but it doesn't change much the prediction. May be there is a specific loss function or optimizer to use in this case?
Thanks for helping me!