Использование весов nnet () для внешнего прогнозирования - PullRequest
0 голосов
/ 11 июля 2019

Прошу прощения за отсутствие повторяющегося кода на этом!

Я создал модель нейронной сети с пакетом (nnet) на спектрах NIR. Наша конечная цель - внедрить эту модель в наш прибор, не сохраняя модель, а используя весовые коэффициенты и воссоздавая логику на устройстве; поскольку это устройство не поддерживает такие программы, как Python, R и т. д.

Архитектура нейронной сети - 103-5-1, то есть 103 входа, 5 скрытых нейронов и один линейный выход.

Извлечение весов дает 103 входных коэффициента на нейрон (103 * 5), 5 смещений на нейрон, 5 коэффициентов для нейронов и смещение для выхода.

Я пытался повторить предсказания, которые я выполнил в R в Excel, со следующей логикой:

(i) Умножьте ввод (n) на коэффициент (n), суммируйте и добавьте смещение для каждого нейрона.

(ii) Умножьте коэффициент нейрона на (i).

(iii) Суммируйте все нейроны (ii) и добавьте выходное смещение.

Я не добился успеха, я пробовал другие способы, которые, вероятно, также неверны и в равной степени безуспешны, например, добавление смещения к каждой входной переменной в (i) и обработка коэффициента в (ii) как смещение. Я попробовал это отдельно и в сочетании.

Функция для скрытого слоя должна быть линейной, поскольку в документации по nnet () формула указана как ~ x1 + x2 + ..., и я сохранил настройку по умолчанию для формулы. Как уже упоминалось выше, я использую линейный выход. Также нет логики пропуска ни для одного из входов или нейронов.

Я неправильно интерпретирую веса из модели nnet ()?

b-> h (n) = смещение к скрытому слою n

i (n) -> h (n) = ввести коэффициент n в скрытый слой n

b-> o = смещение на выходе

h (n) -> o = коэффициент n скрытого слоя для вывода

Любая помощь будет принята с благодарностью!

Спасибо,

Редактировать: я также пытался пропустить узлы <= 0, но все еще не повезло. </p>

1 Ответ

0 голосов
/ 12 июля 2019

Я решил свою проблему, я забыл поставить сигмовидную функцию на каждый нейрон.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...