После создания следующей нейронной сети:
nn = new BasicNetwork();
nn.addLayer(new BasicLayer(null, true, 29));
nn.addLayer(new BasicLayer(new ActivationReLU(), true, 1000));
nn.addLayer(new BasicLayer(new ActivationReLU(), true, 100));
nn.addLayer(new BasicLayer(new ActivationReLU(), true, 100));
nn.addLayer(new BasicLayer(new ActivationTANH() ,false, 4));
nn.getStructure().finalizeStructure();
nn.reset();
Я допустил ошибку больше 10 ^ 38. Это совершенно безумно.
Поэтому я сам кодировал функцию ошибки и заметил, что ошибка все еще такая большая. Сначала я проверил свои IdealOutputs и заметил, что все они были в диапазоне от -1 до 1. Расчетные выходы были намного больше, чем 1.
Поэтому я заключаю ошибку с плавающей запятой.
Я прав в своем заключении?
Что я могу сделать, чтобы в следующий раз избежать таких глупых, отнимающих много времени ошибок?
С уважением
Edit:
nn = new BasicNetwork();
nn.addLayer(new BasicLayer(null, true, 29));
nn.addLayer(new BasicLayer(new ActivationSigmoid(), true, 1000));
nn.addLayer(new BasicLayer(new ActivationSigmoid(), true, 100));
nn.addLayer(new BasicLayer(new ActivationSigmoid(), true, 100));
nn.addLayer(new BasicLayer(new ActivationTANH() ,false, 4));
nn.getStructure().finalizeStructure();
nn.reset();
Проблема по-прежнему возникает после использования сигмоидальных функций.
Как это исправить?