【问题标题】:specifying "initial weights" for nnet in R programming neural network在 R 编程神经网络中为 nnet 指定“初始权重”
【发布时间】:2012-11-26 05:35:10
【问题描述】:

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

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

【问题讨论】:

  • 我经常想知道同样的事情。由于这是一个关于神经网络性质的问题(而不是关于编程的问题),因此堆栈交换可能会有更多答案。我知道weights=指定了权重的数量,你可以通过NNET <- nnet(....) ; NNET$wts看到实际的权重,但我不确定它与模型的构建有什么关系。

标签: r neural-network


【解决方案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)
 )

问候

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

【讨论】:

    【解决方案2】:

    查看文档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,它应该可以工作

    【讨论】:

      猜你喜欢
      • 2021-06-25
      • 2011-12-09
      • 2020-02-08
      • 2012-07-20
      • 2013-09-18
      • 2019-10-09
      • 2019-06-16
      • 2019-04-10
      • 1970-01-01
      相关资源
      最近更新 更多