У меня есть нейронная сеть, созданная с использованием Java-инфраструктуры neuroph.Сеть имеет 2 входных нейрона, 1 выход и 2 скрытых слоя с 8 нейронами.И я пытаюсь создать простую сеть для тестирования.
ds.addRow(new DataSetRow(new double[] {0.1, 0.1}, new double[] {0.1}));
ds.addRow(new DataSetRow(new double[] {0.2, 0.2}, new double[] {0.2}));
ds.addRow(new DataSetRow(new double[] {0.3, 0.3}, new double[] {0.3}));
ds.addRow(new DataSetRow(new double[] {0.4, 0.4}, new double[] {0.4}));
ds.addRow(new DataSetRow(new double[] {0.5, 0.5}, new double[] {0.5}));
ds.addRow(new DataSetRow(new double[] {0.6, 0.6}, new double[] {0.6}));
ds.addRow(new DataSetRow(new double[] {0.7, 0.7}, new double[] {0.7}));
ds.addRow(new DataSetRow(new double[] {0.8, 0.8}, new double[] {0.8}));
ds.addRow(new DataSetRow(new double[] {0.9, 0.9}, new double[] {0.9}));
ds.addRow(new DataSetRow(new double[] {1.0, 1.0}, new double[] {1.0}));
BackPropagation backPropagation = new BackPropagation();
backPropagation.setMaxIterations(100000);
backPropagation.setMaxError(0.0075);
backPropagation.setMomentum(0.10);
backPropagation.setLearningRate(0.30);
Как видно из кода, это довольно простая сеть, в которой первый набор значений типа double представляет собой вход, а последний -является правильным выходом, так что входы 0.3, 0.3 должны давать 0.3 и т. д. Однако, когда я запускаю его и после обучения, когда я ввожу разные входы, я получаю 0.0 или 1.0 (в основном 1.0, когда это 0.0, 0.0Я вернул 0)Это почему?Почему между ними ничего нет.