В моем проекте одна из моих целей - найти выбросы в данных авиационного двигателя, и я решил использовать для этого нейронную сеть Replicator и прочитать следующий отчет об этом (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.12.3366&rep=rep1&type=pdf), и у меня возникла небольшая проблема с пониманием пошаговой функции (стр. 4, рис. 3) и связанных с ней значений прогноза.
Объяснение репликаторной нейронной сети лучше всего описано в вышеприведенном отчете, но в качестве фона построенная мною репликаторная нейронная сеть работает, имея такое же количество выходов, что и входные, и 3 скрытых слоя со следующими функциями активации:
Скрытый слой 1 = tanh сигмоид S1 (θ) = tanh, Скрытый слой 2 = пошаговый, S2 (θ) = 1/2 + 1 / (2 (k - 1)) {суммирование каждой переменной j} tanh [a3 ( θ −j / N)] Скрытый слой 3 = tanh сигмоид S1 (θ) = tanh, выходной уровень 4 = нормальный сигмоид S3 (θ) = 1/1 + e ^ -θ Я реализовал алгоритм и, похоже, обучается (поскольку среднеквадратичная ошибка неуклонно уменьшается во время обучения). Единственное, чего я не понимаю, так это того, как делаются прогнозы, когда применяется средний уровень с пошаговой функцией активации, поскольку он приводит к тому, что активации 3 средних узлов становятся конкретными дискретными значениями (например, мои последние активации на 3 средние были 1.0, -1.0, 2.0), это приводит к прямому распространению этих значений, и каждый раз я получаю очень похожие или точно такие же прогнозы.
Раздел отчета на странице 3-4 лучше всего описывает алгоритм, но я понятия не имею, что мне делать, чтобы исправить это, у меня тоже мало времени :(
Любая помощь будет принята с благодарностью.
Спасибо