How to decrease the gap between training and validation error?
As Learning is a mess points out, more information would help make useful suggestions. What is the size of the model (in terms of the trainable parameters)? Also, how much training data do you have?
However, you can try these: 
a. Dropouts - this a regularization method, it is a kind of proxy for ensemble learning. Not sure if you are using this.
b. Smaller Batches: 8/16/32 - Empirically it has been found that smaller batches find better minimums in the sense of generalization on the test/validation sets. See https://arxiv.org/pdf/1609.04836.pdf. 
c. Holding the number of parameters the same, deeper models (more layers) have been found to generalize better. See https://arxiv.org/abs/1706.10239.