Обучение ENGG RBF

Я учусь работать с библиотекой Encog для Java. Я пытаюсь создать сеть RBF для функции приближения. Я использую метод SVDTraining, но ошибка сети не уменьшается. Он остается на том же уровне, что и в начале обучения. И я не знаю почему.

            MLDataSet trainingSet = new BasicMLDataSet(trainData);
            MLDataSet testingSet = new BasicMLDataSet(testData);

            RadialBasisFunction fnc[] = {new GaussianFunction(1)};
            RBFNetwork rbf= new RBFNetwork(1,1,fnc);

            //Create the training set and train.
            MLTrain train = new SVDTraining(rbf, trainingSet);


            int epoch = 1;

            File f = new File("Error.csv");
            PrintWriter pw = new PrintWriter(f);
            StringBuilder sb = new StringBuilder();

            do {
                train.iteration();  

                System.out.println(rbf.getRBF().length+";"+rbf.getInputCount()+";"+rbf.getOutputCount());
                System.out.println("Epoch #" + epoch + " Error:" + train.getError());
                epoch++;

                String x = String.valueOf(epoch).replace(".", ",");
                String y = String.valueOf(train.getError()).replace(".", ",");
                sb.append(x);
                sb.append(';');
                sb.append(y);
                sb.append('\n');
          } while((train.getError() > MAX_ERROR)&&(epoch < ITERATIONS));

Вот фрагмент моего кода (часть, посвященная созданию и обучению). Большое спасибо за каждый ответ.

1 ответ

SVD это один шаг решить.

//SVD is a single step solve
int epoch = 1;
do
{
    train.iteration();
    System.out.println("Epoch #" + epoch + " Error:" + train.getError());
    epoch++;
} while ((epoch < 1) && (train.getError() > 0.001));

Это будет повторяться только 1 раз.

Другие вопросы по тегам