Optimization 深度网络的超参数优化

Optimization 深度网络的超参数优化,optimization,machine-learning,neural-network,deep-learning,hyperparameters,Optimization,Machine Learning,Neural Network,Deep Learning,Hyperparameters,我目前正试图为CLDNN(卷积、LSTM、深度神经网络)提出一种新的结构 就像其他网络一样,我很难优化超参数 我想尝试网格搜索和随机搜索,以获得一组最佳的超参数,但我不清楚的几件事 如果我使用一组临时的超参数运行网络模拟,我如何度量超参数的“优度”?我在考虑记录每次模拟N个历元后的成本和训练精度 由于每次模拟需要相对较长的时间(对于我的网络来说,一个历元的训练大约需要70秒),有没有更快的方法来检查超参数的“优点”,而不实际运行完整的训练 是否有超参数优化的一般提示/建议 因此,基本上-为了测量

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

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

我想尝试网格搜索和随机搜索,以获得一组最佳的超参数,但我不清楚的几件事

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

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

  • 是否有超参数优化的一般提示/建议

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

  • 谢谢你详细的回答!我猜超级优化没有捷径?我可能需要运行整个星期的优化。。