在R编程神经网络中为nnet指定“初始权重”

时间:2012-12-08 00:46:13

标签: r neural-network

在R编程中,我试图了解如何使用nnet来为用户指定初始权重而不是默认值来运行神经网络算法? R文档提到了以下论点。有关如何使用权重的任何示例吗?

nnet(formula, data, weights, ...,
subset, na.action, contrasts = NULL)

2 个答案:

答案 0 :(得分:1)

查看文档http://cran.r-project.org/web/packages/nnet/nnet.pdf

默认S3方法:

nnet(x, y, weights, size, Wts, mask,
linout = FALSE, entropy = FALSE, softmax = FALSE,
censored = FALSE, skip = FALSE, rang = .7, decay = ,
maxit = 1 , Hess = FALSE, trace = TRUE, MaxNWts = 1 ,
abstol = 1. e-4, reltol = 1. e-8, ...)

Wts :初始参数向量。如果遗失是随机选择的。

因此,您必须根据您的网络拓扑定义自己的Wts并且它应该可以正常工作

答案 1 :(得分:1)

自定义权重应具有以下形式:

weights <- c(

 BH1, I1H1, I2H1, .., InH1,
 BH2, I1H2, I2H2, .., InH2,
 ...
 BHn, I1Hn, I2Hn, .., InHn,
 BO,
 I1Out, .., InOut)

c(
 weights from bias & inputs to 1st hidden unit,
 from bias & inputs to second hidden unit H2,
 from bias & inputs to last hidden unit Hn,
 biast of output unit,
 skip layer weights ( if any)
 )

此致

P.S。 切记将连接到单位的所有重量的标准偏差保持在1.0以下。 否则你会很快让单位饱和。