Как библиотека nnfor выбирает количество узлов в каждом слое в сетях elm и mlp? - PullRequest
0 голосов
/ 30 ноября 2018

Я использую функции mlp и elm из библиотеки nnfor для прогнозирования нестационарных временных рядов.Оба они дают разное количество узлов во входном и скрытом слоях.Меня интересует, как они выбирают количество узлов в каждом слое, и было бы здорово понять, как ошибка обобщения меняет способ работы этих функций.

1 Ответ

0 голосов
/ 30 ноября 2018

Количество скрытых узлов, выбранных функцией mlp, зависит от значения параметра hd.auto.type:

  • «set» fixes hd = 5.
  • «Действительный» использует 20% проверочный набор (случайным образом), отобранный для поиска наилучшего числа скрытых узлов.
  • «cv» использует 5-кратную перекрестную проверку.
  • «elm» использует ELM для оценки количества скрытых узлов (экспериментально).

Количество скрытых узлов, которые пробовали для значений параметров «valid», «cv» и «elm», варьируется от 1до max(2, min(dim(X)[2] + 2, length(Y) - 2)).Эти скрытые узлы ограничены одним слоем.

Подходы "cv" и "valid" используют минимум среднеквадратичной ошибки для определения количества скрытых узлов.

Насколько я могу судить по функции auto.hd.elm в исходный код , подход «вяз» использует медианное значение числа значимых коэффициентов модели для выбора количества скрытых узлов.Надеюсь, что это имеет смысл для вас!

Функция elm использует min(100 - 60*(type=="step" | type=="lm"),max(4, length(Y) - 2 - as.numeric(direct)*length(X[1,]))) для определения количества скрытых узлов.Где type - это оценка, используемая для весов выходного слоя, а direct - наличие прямых соединений ввода-вывода.

Количество узлов ввода зависит от сезонности и задержек.

Ошибка обобщения можетбыть аппроксимированы с использованием перекрестной проверки.Чтобы было ясно, эта перекрестная проверка должна выполняться отдельно от любой проверки, используемой для определения количества скрытых узлов.

У автора пакета nnfor есть вступительное сообщение в блоге, которое, возможно, стоит проверить: http://kourentzes.com/forecasting/2017/02/10/forecasting-time-series-with-neural-networks-in-r/

...