繁体   English   中英

R中nnet函数的衰减参数的目的?

[英]Purpose of decay parameter in nnet function in R?

我在R中使用nnet函数来训练我的神经网络。 我没有得到nnet中的衰减参数是什么? 这个步长是用于梯度下降方法还是用于克服过度拟合的正则化参数?

这是正规化以避免过度拟合。

文档(pdf)

decay:体重衰减的参数。 默认值为0。

有关详细信息,请参阅作者的书“ 现代应用统计与S.第四版” ,第245页:

确保f平滑的一种方法是限制估计类别,例如,通过使用有限数量的样条结。 另一种方式是正则化 ,其中拟合标准被改变为

E + λC(f)

对f的'粗糙度'处以罚分C. 权重衰减,特定于神经网络,使用权重wij的平方和作为惩罚。 ...使用重量衰减似乎既有助于优化过程,又可以避免过度补偿 (重点补充)

通过查看源代码补充blahdiblah的答案我认为参数weights对应于反向传播的学习速率(通过阅读手册我无法理解它是什么)。 查看函数fpass中的文件nnet.c ,第236行:

TotalError += wx * E(Outputs[i], goal[i - FirstOutput]);

这里,在一个非常直观的命名法中, E对应于bp错误,而wx是传递给函数的参数,最终对应于标识符Weights[i]

此外,您可以通过在函数VR_dfunc中转到相同文件的第317~319行确定参数decay确实是它所声称的:

for (i = 0; i < Nweights; i++)
    sum1 += Decay[i] * p[i] * p[i];
*fp = TotalError + sum1;

其中p对应于连接的权重,这是权重衰减正则化的确切定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM