Generalization Error Bounds for Deep Neural Networks Trained by SGD