Я очень плохо знаком с машинным обучением, и я создал и обучил MLP с обучением по алгоритму Backpropagation. Я беру свои данные в SQLNeuralDataSet. Когда я тренируюсь, ошибка продолжает изменяться, но в какой-то момент она возвращается к этому числу 0,183805 .... (точки представляют собой числа, которые продолжают изменяться, но не 0,183805). То же самое касается ResilientPropagation. Любая помощь будет высоко ценится.
BasicNetwork network = new BasicNetwork();
network.addLayer(new BasicLayer(null , true, 9));
network.addLayer(new BasicLayer(new ActivationSigmoid(), true, 8));
network.addLayer(new BasicLayer(new ActivationSigmoid(), false, 1));
network.getStructure().finalizeStructure() ;
network.reset();
MLDataSet trainingSet = new SQLNeuralDataSet(
hourAheadLoad.SQL,
hourAheadLoad.INPUT_SIZE,
hourAheadLoad.IDEAL_SIZE,
hourAheadLoad.SQL_DRIVER,
hourAheadLoad.SQL_URL,
hourAheadLoad.SQL_UID,
hourAheadLoad.SQL_PWD);
final Backpropagation train = new Backpropagation(network, trainingSet);
train.addStrategy(new SmartMomentum());
train.addStrategy(new SmartLearningRate());
train.fixFlatSpot(false);
int epoch = 1;
do {
train.iteration();
System.out.println("Epoch #" + epoch + " Error:" + train.getError());
epoch++;
// train until error is less than 0.01
} while(train.getError() > 0.01);