在 R 编程中,我试图了解如何使用 nnet 让用户指定初始权重而不是默认权重来运行神经网络算法?R 文档提到了以下论点。如何使用权重的任何示例?
nnet(formula, data, weights, ...,
subset, na.action, contrasts = NULL)
在 R 编程中,我试图了解如何使用 nnet 让用户指定初始权重而不是默认权重来运行神经网络算法?R 文档提到了以下论点。如何使用权重的任何示例?
nnet(formula, data, weights, ...,
subset, na.action, contrasts = NULL)
自定义重量应具有以下形式:
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 以下。否则你会很快得到饱和的单位。
查看文档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,它应该可以工作