train Neural Network with SGD and see that it overfits data.
Of the options you listed, I would try adding a dropout layer first.

Another option you did not mention, but may, or may not be feasible, is to get more training data.  Often overfitting is a result of not having enough training data.