使用nnet()权重进行外部预测

时间:2019-07-11 05:01:58

标签: r neural-network nnet

请原谅此代码上没有可重复的代码!

我用NIR光谱的(nnet)软件包创建了一个神经网络模型。我们的最终目标是在不保存模型而是使用权重并在设备上重新创建逻辑的情况下,将该模型实施到我们的仪器上。因为该设备不支持Python,R等软件。

神经网络架构是103-5-1,即103个输入,5个隐藏的神经元和一个线性输出。

提取权重后,每个神经元有103个输入系数(103 * 5),每个神经元有5个偏差,神经元有5个系数,输出有偏差。

我一直在尝试使用以下逻辑复制我在excel中在R中所做的预测:

(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的节点,但仍然没有运气。

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题,我忘了在每个神经元上执行S形功能。

干杯