ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

超参数的调节方法——随机搜索

超参数的调节方法——随机搜索 训练神经网络之前我们需要先确定一些设置例如学习率、批量大小、隐藏层神经元数量。这些设置叫作超参数。“超参数”可以理解为训练开始前由人设定的选项它和神经网络在训练中学到的权重不是一回事。问题是我们通常不知道哪组超参数效果最好。于是就要换着设置训练模型再比较结果。比如先用学习率 0.01 训练一次再用学习率 0.001 训练一次看看哪个模型在验证集上表现更好。这个尝试和比较的过程就叫超参数搜索。在搜索范围很大时为什么考虑随机搜索在超参数搜索空间较大的情况下采用随机搜索会优于网格搜索。“搜索空间”就是所有可能尝试的超参数组合。“网格搜索”是预先列出一些值再把它们的组合按表格逐一尝试“随机搜索”是从规定的范围里随机抽取若干组来尝试。当组合太多、训练时间有限时随机搜索往往能更有效地探索不同的值但不保证每次都比网格搜索好。假设我们只调整两个超参数超参数准备尝试的值学习率0.1、0.01、0.001、0.0001批量大小16、32、64、128用网格搜索就要把每个学习率与每个批量大小搭配学习率 0.1 分别搭配四种批量大小学习率 0.01 也分别搭配四种批量大小以此类推。这样一共要训练16 次。只调整两个设置就已经要训练 16 次。如果再加入“网络层数”“神经元数量”等设置组合会迅速增多可能没有足够的时间全部试完。这时我们可以限定训练预算例如“只允许训练 10 次”然后随机抽取 10 组设置。随机搜索的目的不是把所有可能性试遍而是在有限次数内尽量找到效果不错的组合。“从分布中取样”是什么意思随机搜索实现了对参数的随机搜索其中每个设置都是从可能的参数值的分布中进行取样试图找出最佳的参数子集。先为每个超参数规定“可以取哪些值、按什么规则抽取”然后随机抽出一整组设置。每抽出一组就用这组设置训练模型并检查效果。“分布”可以先理解为抽取规则“取样”就是按规则抽一次。这里要找的是表现较好的超参数组合。可以把它想成配套餐主食从米饭、面条中抽一个饮料从水、茶、果汁中抽一个。抽一次得到“米饭茶”再抽一次可能得到“面条水”。每次抽到的都是一整套搭配。随机搜索也是这样。一次可能抽到学习率 0.01 批量大小 32 隐藏层神经元数量 64下一次可能抽到学习率 0.002 批量大小 128 隐藏层神经元数量 32接着分别训练模型看看哪一组设置的效果更好。这里的“随机”并不是毫无规则地乱填数字抽取范围和抽取方式需要先由我们设定。还要注意“找出最佳”通常是指在已经尝试过的组合中找出表现最好的一组。没有试过所有组合就不能保证它是所有可能设置中的绝对最优。为什么要“先粗搜再细搜”首先在一个粗范围内搜索然后根据最佳结果出现的位置缩小范围。先在较宽的范围里试判断哪一片区域有希望再围绕效果较好的区域多试几个值。就像找东西时先确定它大概在哪个房间再到那个房间里仔细找。假设你不知道合适的学习率是多少第一轮先试得宽一些尝试的学习率验证效果0.1 附近较差0.01 附近一般0.001 附近较好0.0001 附近一般从这些结果看0.001 附近比较有希望。下一轮就可以在它附近多试一些值例如 0.0007、0.0012、0.0018而不是继续把尝试次数平均分散到整个大范围。这就是“先粗搜再细搜”粗搜找大概方向。细搜在有希望的区域里继续寻找。不过如果效果最好的值恰好落在搜索范围的边界就要小心。例如你只允许学习率最大到 0.01结果 0.01 最好那么更好的值也许是 0.02。这时应考虑向外扩大范围而不是急着缩小范围。为什么要关注“哪个超参数更重要”某些超参数比其他的更加重要随机搜索过程中会影响搜索的偏向。不同设置对模型效果的影响可能不一样。如果某个设置影响很大就值得认真设计它的搜索范围让搜索充分覆盖它的可能取值如果另一个设置的影响较小就不必把大量尝试次数都花在它上面。“偏向”可以理解为搜索要有重点。比如在某个任务中学习率设得不合适模型可能学得很慢甚至训练不稳定批量大小从 32 改成 64结果可能变化不大。如果只有少量训练机会就应重点考虑学习率该在哪些范围内尝试而不是把大部分次数用来比较相近的批量大小。这也是随机搜索常常比固定网格更实用的原因之一假如网格只选了少数几个学习率却把它们分别与许多批量大小搭配你虽然训练了很多次实际探索过的学习率却很少。用一个完整过程把它串起来假设你的目标是训练一个识别手写数字的模型可以这样调参第一步规定范围。例如决定学习率大致在哪个范围内抽批量大小从哪些候选值中抽。第二步随机抽取几组设置。每组都包含模型训练所需的全部超参数而不是只抽一个学习率。第三步分别训练并比较。用每一组设置训练模型再看它们在验证集上的表现。第四步观察较好结果出现在哪里。例如发现表现较好的配置大多使用 0.001 附近的学习率。第五步调整范围继续尝试。在有希望的区域多抽几组如果好结果落在边界也要考虑扩大范围。最后记住这个区别就够了网格搜索先列好表格按表格尝试组合。随机搜索先规定抽取规则再随机尝试若干组合找到有希望的区域后继续在那里尝试。
返回列表