neuralnet包中的stepmax和rep参数有什么区别? 我是否正确地认为stepmax是所有梯度步骤的最大计数,哪个神经网络在所有训练样本上进行?我是否正确地表示神经网络可以从 1 个示例中学习多少次?
最佳答案
您对 stepmax
的理解基本上是正确的。如果我没记错的话,神经网络包仅使用整个数据集的梯度下降,计算梯度,更新权重,然后重复直到收敛(由阈值定义) ) 或达到 stepmax
。
据我所知,rep
参数只不过是用于循环创建神经网络的包装器。创建神经网络存在一些固有的随机性,因此通过设置 rep > 1
函数将创建多个起始权重并拟合两者。例如,如果您这样做:
library(neuralnet)
data(infert, package="datasets")
net.infert <- neuralnet(case~parity+induced+spontaneous, infert,
err.fct="ce", linear.output=FALSE, likelihood=TRUE,
rep = 3)
length(nn.infert$startweights)
[1] 3
length(nn.infert$weights)
[1] 3
否则两者的长度均为 1。这样做的目的是通过再次指定仅选择要使用的列表元素的 rep
参数,以便更轻松地使用 compute
评估每个重复。
这整个事情可以用一个简单的 for
循环来解决,但它将它封装在函数对象中以使其更加“方便”。关键是要确保您创建的模型不是随机发现的(即可能过度拟合)。
关于r - R 中的神经网络 : what are the difference between stepmax and rep parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518511/