为什么每次运行深度学习计划时,表现最佳的模型都不同?

时间:2016-09-12 20:10:54

标签: machine-learning tensorflow deep-learning

我有一个训练数据集和测试数据集,每个数据集分别有大约1300和400个样本。我运行一个网格搜索,它创建了x个深层网络(使用softmax作为输出,隐藏层的RELU和梯度下降),在预定数量的隐藏层中有不同数量的隐藏节点。例如,如果我说检查所有单层模型,则网格搜索将为此示例创建100个深层网络,其中单层中包含1,2,3 ... 100个隐藏节点。对于每个模型和每个时期,网格搜索将训练模型并通过使用预先指定的批量大小提供模型随机批次的训练/测试数据来测试它。然后,该程序在所有100个模型的每个训练时期之后吐出AUC值。因此,在每个训练时期之后,我们得到100个具有所有AUC值的输出文件。然后,我可以使用解析器浏览这些文件,以查看最佳模型是什么以及最佳时期数是多少。

但是,当我运行网格搜索时,我注意到第一次运行中的最佳模型与后续运行中的模型不同。我把它归因于用于训练和测试的随机批次,但是我怎样才能真正找到最佳模型"?

1 个答案:

答案 0 :(得分:2)

我认为'最佳'非常主观,你可能会发现一个特定的模型在预测特定数据集时表现更好,而另一个模型在另一个模型上表现稍好。一个很好的衡量标准(在我看来)将是均方根误差。

某些AI包可以设置为消除随机性,例如H2O,因此如果你输入相同的种子,你可以复制相同的结果。下次。

希望这可以帮助你