我在R中使用nnet函数来训练我的神经网络。我没有得到nnet中的衰减参数是什么?这个步长是用于梯度下降方法还是用于克服过度拟合的正则化参数?
答案 0 :(得分:7)
避免过度拟合是正规化的。
重量衰减的
decay:
参数。默认为0.
有关详细信息,请参阅作者的书Modern Applied Statistics with S. Fourth Edition,第245页:
确保f平滑的一种方法是限制估计类别,例如,使用有限数量的样条结。另一种方法是 正则化 ,其中拟合标准被更改为
E + λC(f)
在f的'粗糙度'上有一个惩罚C.体重衰减,特定于神经 网络,用作权重wij的平方和的罚分。 ... 使用重量衰减似乎既有助于优化过程,也有助于避免过度补偿。 (重点补充)
答案 1 :(得分:2)
通过查看源代码来补充blahdiblah的答案我认为参数weights
对应于反向传播的学习率(通过阅读手册我不能不明白它是什么。查看文件 nnet.c ,行 236 ,在函数 fpass 中:
TotalError += wx * E(Outputs[i], goal[i - FirstOutput]);
这里,在一个非常直观的命名法中,E
对应于 bp 错误,wx
是传递给函数的参数,最终对应于标识符{{ 1}}。
此外,您可以确定参数Weights[i]
确实是它所声称的那个,通过转到同一文件的 317~319 行,在函数 VR_dfunc <中/ em>:
decay
其中for (i = 0; i < Nweights; i++)
sum1 += Decay[i] * p[i] * p[i];
*fp = TotalError + sum1;
对应于连接的权重,这是权重衰减正则化的确切定义。