神经网络包中的stepmax和rep参数有什么区别?我是否更正 stepmax 它是所有梯度步骤的最大计数,哪个神经网络对所有训练样本进行?我是否正确表示代表神经网络可以从 1 个示例中学习多少次?
你的理解stepmax基本正确。如果我没记错的话,这个neuralnet包只使用整个数据集的梯度下降,计算梯度,更新权重,然后重复直到收敛(由 定义threshold)或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
Run Code Online (Sandbox Code Playgroud)
否则两者的长度都是 1。这旨在compute通过再次指定rep简单地选择要使用的列表元素的参数来更容易地评估每个重复。
这整个事情可以通过一个简单的for循环来完成,但它将它打包在函数对象中以使其更“方便”。关键是要确保您创建的模型不是偶然发现的(即可能过度拟合)。