Training error is oscillating, cross validation error is continuously decreasing
By definition, the training error should always decrease with a proper learning rate until it reaches his plateau, then starts to oscillate because it's crossing forward and backward the minimum of the loss function.

Instead, what you expect from the validation error is that it decrease with the training error, and at some point it starts to increase, sign of over fitting.

And it is not unusual that at the begin of the training you found the validation error lower than the training error.

From your plot I would say:


Train and validation errors are simply swapped: the red line is actually the training error, and the blue one is the validation error;
Stop training just after the crossing point. This because the validation set is just a set where you tune your parameters, and not the set of the "Revealed Truth", so it is also prone to over fitting.


If you make a third dataset ("test" dataset), and you try to check your metric (accuracy?) on it, I bet that the model trained after two epochs performs better than the model trained with ten epochs.