2

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

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

2 回答 2

2

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

weights <- c(

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

IE

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)
 )

问候

PS 请记住将连接到一个单位的所有权重的标准偏差保持在 1.0 以下。否则你会很快得到饱和的单位。

于 2012-12-13T08:43:51.517 回答
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,它应该可以工作

于 2012-12-09T02:13:07.500 回答