Прошу прощения за отсутствие повторяющегося кода на этом!
Я создал модель нейронной сети с пакетом (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>