我应该重复冗长的深度学习实验来平均结果吗?如何决定重复多少次?

人工智能 深度学习 人工智能设计 研究
2021-11-06 09:58:12

我正在做关于深度学习的硕士论文。我的模型需要很多小时来训练。我所做的部分工作是尝试不同的参数和设置,希望它们能取得不同的结果。但我经常注意到结果差异太小,无法得出参数集 A 是否优于 B 的结论。有时会发生这样的情况,在第一次运行时,设置 A 似乎比 B 工作得更好,但在第二次运行时,情况正好相反建议。

合乎逻辑的方法是重复实验并取平均值。但考虑到每次运行可能需要这么多小时,这似乎不切实际。

我想知道专业的人工智能研究人员如何处理这个问题,他们是否会进行多次实验,即使这需要很长时间?他们是否从单次运行中得出结论?

2个回答

我想知道专业的人工智能研究人员如何处理这个问题,他们是否会进行多次实验,即使这需要很长时间?他们是否从单次运行中得出结论?

不幸的是,您在此处的问题主体中提出的问题(“专家 AI 研究人员如何做事”)通常与您标题中的问题(“我应该如何做事”)实际上不同。

非常简短的回答是,理想情况下,你可以尽可能多地重复,但在实践中,做多于一次或几次确实是不可行的。


对于长答案,我认为它实际上可能会完全不同,这也取决于你正在做什么样的机器学习。就个人而言,我更熟悉强化学习和类似类型的问题,即我们通过让代理在环境中行动来自己生成“训练”数据的问题,同样也通过再次让训练有素的代理在环境中行动和测量来评估他们的表现。我不太熟悉分类/回归等“标准”机器学习任务中的最新研究,但在 RL 风格的问题中问题可能更糟,因为:

  1. 我们实际上必须生成自己的数据,这需要大量时间(有时比实际训练本身花费的时间要多得多)
  2. 我们生成训练数据的方式通常有很多随机性,因此我们在不同的运行中经常有非常不同的训练数据集,这当然也会导致不同运行的性能水平大相径庭
  3. 我们几乎总是从 RL 中的数据子集(批次)计算梯度,这又是随机性的来源。相比之下,在有监督的 ML 中,您可以考虑在每个 epoch 一次估计整个数据集的梯度,然后至少您的训练过程的那部分变得确定性(因此是可复制的)。

就 RL 而言,最近一篇题为“在统计悬崖边缘的深度强化学习”的论文出现在 arXiv 上,该论文介绍了各种工具和方法,您可以使用这些工具和方法更合理地得出原则性结论,即使从少量重复您的培训过程(以比仅报告平均值的常见做法更好的方式,或者更糟糕的是,仅报告最佳结果)。

对于有监督的 ML,一些类似的技术可能适用,但对此的需求也可能不太大(尤其是在训练过程中几乎没有随机性的情况下)。


我所做的部分工作是尝试不同的参数和设置,希望它们能取得不同的结果。但我经常注意到结果差异太小,无法得出参数集 A 是否优于 B 的结论。有时会发生这样的情况,在第一次运行时,设置 A 似乎比 B 工作得更好,但在第二次运行时,建议相反.

对于这种特定情况,我很想知道A 有时比 B 好多少,而 B 有时比 A 好。如果我们在 99.5% 的基线准确度下谈论任何一种方式的准确度差异为 0.1% ,这可能只是意味着他们都一样好。如果您“希望”其中一个优于另一个,那可能会令人失望……但是对于整个培训过程而言,您实际上可以得出一个更积极的结论,即它显然是稳健的;即使使用不同的参数,它在不同的运行中也表现相似!

另一方面,如果您观察到显着量级的性能差异(例如,80% 与 90% 的准确度),但有时 A 好很多,有时 B 好很多……那么这强烈表明您确实是处理高方差,您将不得不进行多次重复以获得具有统计意义的结果。

除了另一个很好的答案,如果您能负担得起多次运行实验的奢侈,您还可以使用假设检验来测试两个模型的性能(例如准确性)之间是否存在任何显着差异。

假设检验在 ML/DL 社区中并未广泛使用(或至少在研究论文中报道)(鉴于要应用这些检验,您通常需要重复实验几次,这可能很昂贵,因为您已经知道),但也有一些研究人员(例如,参见本文)经常使用这些统计工具。

我还必须承认,我不知道它们到底有多有价值。我过去使用过它们,但还不足以说它们在机器学习的环境中真的很有用。