【问题标题】:error in nnet: “initial value in 'vmmin' is not finite”nnet 中的错误:“'vmmin' 中的初始值不是有限的”
【发布时间】:2017-12-26 07:45:26
【问题描述】:

我第一次尝试在 r 中使用 nnet 运行神经网络模型。当我为“size”参数提供一系列值时,我收到以下错误:

Error in nnet.default(x, y, w, entropy = TRUE, ...) :
  initial value in 'vmmin' is not finite

但是,当我将单个值传递给“size”参数时,该函数可以正常工作。为什么会发生此错误,我该如何解决?

这是一个可重现的例子:

Var1 <- rnorm(100, 1, 2)
Var2 <- rnorm(100, 1, 2)
Var3 <- rnorm(100, 1, 2)
Var4 <- rnorm(100, 1, 2)
Var5 <- as.factor(runif(100)<=.50)
outcome <- as.factor(runif(100)<=.90)
data <- data.frame(outcome, Var1, Var2, Var3, Var4, Var5)
neural_net <- nnet(outcome ~ ., data = data, decay=5e-4, maxit=200, size = seq(from = 2, to = 30, by = 1))

这是我的 R 版本信息:

> version
           _                           
platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          4.0                         
year           2017                        
month          04                          
day            21                          
svn rev        72570                       
language       R                           
version.string R version 3.4.0 (2017-04-21)
nickname       You Stupid Darkness  

谢谢!

【问题讨论】:

    标签: r neural-network nnet


    【解决方案1】:

    nnet 只适合单隐藏层的神经网络,所以size(隐藏层的神经元个数)只能是一个标量。

    nnet 包现在已经过时了。它可以追溯到 1990 年代,当时深度学习的所有当前进展都还没有完成。如果您想了解 R 中的神经网络,请考虑使用更现代的软件包,例如 RStudio 的 tensorflow 或 Microsoft R 的 MicrosoftML。后者实际上是机器学习算法的工具包,包括随机森林、boosted trees 以及除 NN 之外的其他算法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 2020-01-29
      • 2015-09-03
      相关资源
      最近更新 更多