【问题标题】:Optimize hyperparameters for deep network优化深度网络的超参数
【发布时间】:2017-01-24 18:12:53
【问题描述】:

我目前正在尝试为 CLDNN(卷积、LSTM、深度神经网络)提出一种新颖的结构

就像任何其他网络一样,我很难优化超参数。

我想尝试网格搜索和随机搜索来获得一组最佳的超参数,但我不清楚一些事情。

  1. 如果我使用一组临时超参数运行网络模拟,我如何衡量超参数的“优度”?我正在考虑在每次模拟 N 轮后记录成本和训练精度。

  2. 由于每次模拟都需要相对较长的时间(对于我的网络来说,训练一个 epoch 大约需要 70 秒),有没有更快的方法来检查超参数的“好坏”而不实际运行完整的训练?

  3. 是否有关于超参数优化的一般提示/建议?

【问题讨论】:

    标签: optimization machine-learning neural-network deep-learning hyperparameters


    【解决方案1】:
    1. 所以基本上 - 为了测量不同超参数的性能 - 最佳实践是模拟在每个参数设置的训练数据上训练最终分类器的过程 - 然后比较不同的结果与您想要的度量进行超优化。
    2. 如果您更改训练过程(例如,通过在超优化阶段设置固定的 epoch 速率,然后在最终训练中设置不同) - 您不应期望在多个测试阶段获得的结果会一概而论。在我看来,这可能会损害您的优化过程,尤其是某些超参数设置需要更多时间才能真正获得良好的结果(例如,当您设置非常高的 dropout 率时)并且在选择最佳值期间缩短训练时间可能会使超参数设置提供在早期训练阶段更好的结果更有利。
    3. 良好做法?:
      • 选择random search,而不是网格搜索。通常,您的训练网络对某些参数不太敏感,因此进行全网格搜索会浪费时间,
      • 如果您想尝试更复杂的方法,您可以尝试更复杂的方法,例如bayessian hyperoptimization,
      • 使用交叉验证或使用给定的超参数设置多次运行您的网络。这是因为神经网络可能对起始权重敏感 - 因此分数数据可能无法很好地概括,
      • 并行化您的培训过程。尝试运行培训过程,例如在不同的机器上,然后简单地合并结果。

    【讨论】:

    • 感谢您的详细解答!我猜超优化没有捷径可走?我可能需要运行整整一周的优化..
    猜你喜欢
    • 2017-09-17
    • 2020-08-23
    • 2019-10-05
    • 2018-10-08
    • 2020-09-15
    • 2017-06-11
    • 2017-01-24
    • 1970-01-01
    • 2020-02-01
    相关资源
    最近更新 更多