I am implementing an Artificial Neural Network model in Python Keras, and I get high accuracy in training but low accuracy for testing. This means that some overfitting is present in the data.
I would like to avoid overfitting and one of the techniques is jittering or noise addition. But, my question is: How can I do it in Python?
Here is my code for the ANN:
def designANN(input_nodes, dropout, layer_nodes, output_nodes):
classifier = Sequential()
classifier.add(Dense(units = layer_nodes, kernel_initializer = "uniform",
activation = "relu", input_dim = input_nodes))
classifier.add(Dropout(dropout))
classifier.add(Dense(units = layer_nodes, kernel_initializer = "uniform",
activation = "relu"))
classifier.add(Dropout(dropout))
classifier.add(Dense(units = output_nodes, kernel_initializer = "uniform",
activation = "sigmoid"))
classifier.compile(optimizer = "adam", loss = "binary_crossentropy", metrics = [npv])
return classifier