I am training a neural network on a regression problem.
Most of the time the actual y (label) has the same value (say ~0.2) and only in rare cases the actual y is very different (say 2.0 or -2.0)
After training the neural network obviously performs very well on average by allways predicting (predicted y) a number around 0.2, mostly independant on the input. However, it is still very bad on predicting when the actual y should be different.
At the moment i am improving the situation by training the neural network mostly on situations where y is far from the average y and filtering out situations where y is close to the average y.
Can you think of any better way to make the neural network learn stronger on rare events? (e.g. by using a different cost function other than MSE, ...)
Additional information:
The neural network is supposed to learn the immediate rewards on a reinforcment learning environment.
the nn maps actions+states to the expected immediate reward.
most of the time the immediate reward is the same. (because the agent gets punished on every step it takes)