【问题标题】:Successive training in neuralnet神经网络的连续训练
【发布时间】:2017-01-27 09:45:16
【问题描述】:

我有一个巨大的 trainData,我想从中提取随机子集(比如说 1000 次)并使用它们连续训练神经网络对象。是否可以通过使用神经网络 R 包来做到这一点。我在想的是这样的:

library(neuralnet)

for (i=1:1000){
classA <- 2000 
classB <- 2000 
dataB <- trainData[sample(which(trainData$class == "B"), classB, replace=TRUE),] #withdraw 2000 samples from class B
dataU <- trainData[sample(which(trainData$class == "A"), classA, replace=TRUE),] #withdraw 2000 samples from class A
subset <- rbind(dataB, dataU) #bind them to make a subset

然后输入这个实际 trainData 的子集以一次又一次地训练神经网络对象,例如:

nn <- neuralnet(formula, data=subset, hidden=c(3,5), linear.output = F, stepmax = 2147483647) #use that subset for training the neural network
}

我的问题是,这个名为 nn 的 neualnet 对象会在循环的每次迭代中进行训练吗?当循环结束时,我会得到一个经过全面训练的神经网络对象吗?其次,在神经网络无法收敛特定子集的情况下,不收敛会产生什么影响?会不会影响预测结果?

【问题讨论】:

  • 我的投票结束是基于这是一个关于预测非确定性算法行为的不良枚举特征的两部分问题。似乎更适合其他 stackexchange 论坛之一,可能是 beta 机器学习论坛或已建立的统计论坛。 (第二个似乎只是使用try 或其其他表亲之一来回答。)
  • @42- 从你的评论中我能理解的是“这个问题不适合在 stackoverflow 上。其次,我应该尝试我提到的训练神经网络的方式”对吗?跨度>
  • 没有。未能承认第 1 部分的建设性建议。第 2 部分不正确。

标签: r neural-network deep-learning


【解决方案1】:

我建议使用 k-fold 验证来使用 library(e1071) 和调整函数来训练许多网络。

【讨论】:

    【解决方案2】:

    最短的答案 - 否

    更细致入微的答案 - 有点......

    为什么? - 因为neuralnet::neuralnet 函数并非设计为在stepmax 内未达到threshold 时返回weights。但是,如果达到threshold,则生成的对象将包含最终的weights。然后可以将这些weights 作为startweights 参数提供给neuralnet 函数,以允许连续学习。您的调用如下所示:

    # nn.prior = previously run neuralnet object
    
    nn <- neuralnet(formula, data=subset, hidden=c(3,5), linear.output = F, stepmax = 2147483647, startweights = nn.prior$weights)
    

    但是,我最初回答“否”,因为选择 threshold 以从子集中获取适量的信息,同时确保它在 stepmax 之前“收敛”可能是一个猜谜游戏,不是很客观.

    我能想到的基本上有四个选择:

    1. 找到另一个明确允许这样做的包
    2. 获取neuralnet 源代码并对其进行修改以返回weights,即使未实现“收敛”(即达到threshold)。
    3. 获取大小合适的随机子集,然后在此基础上构建模型并测试其性能。 (这实际上是很常见的做法 AFAIK)。
    4. 获取所有子集,在每个子集上构建模型,然后考虑将它们组合为“集成”模型。

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 2019-01-14
      • 2011-04-07
      • 1970-01-01
      • 2010-11-20
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多