超参数调整的顺序是什么

What orders of hyperparameter tuning

我已经将神经网络用于分类问题,现在我要调整所有超参数。

现在,我看到了很多不同的超参数需要调整:

  1. 学习率
  2. 批量大小
  3. 迭代次数(epoch)

现在,我的调音是相当“手动”的,我不确定我是否没有以正确的方式做每件事。是否有特殊的命令来调整参数?例如,首先是学习率,然后是批量大小,然后……我不确定所有这些参数都是独立的。哪些明显独立,哪些明显不独立?我们应该一起调整它们吗?是否有任何论文或文章讨论按特殊顺序正确调整所有参数?

还有更多!例如。层数、每层神经元数、选择哪个优化器等...

所以训练神经网络的真正工作实际上是找到最合适的参数。

我想说没有明确的指导方针,因为训练机器学习算法通常总是针对特定任务。 你看,有很多超参数需要调整,你没有时间尝试每一个的每一个组合。对于许多超参数,您会凭直觉判断什么是好的选择,但就目前而言,一个很好的起点始终是使用已被其他人证明有效的方法。因此,如果您找到一篇关于相同或相似任务的论文,您也可以尝试使用与它们相同或相似的参数。

顺便分享一下我的一些小经验:

  • 我很少改变学习率。我主要选择 Adam 优化器并坚持使用它。
  • batch size我尽量选的大一点,不会运行内存不足
  • 您可以设置的迭代次数,例如1000. 你总是可以看看当前的损失,然后自己决定是否可以在网线时停止。不学习了

请记住,这些绝不是规则或严格的准则。只是一些想法,直到你自己有更好的直觉。您阅读的论文越多,训练的网络越多,您就会明白在什么时候选择更好。 希望这至少是一个好的起点。