changed NeuralNetworkOptimizer's train method to take in the custom epoch count to pass on to conjugate gradient