什么是调参 调参其实就是调整超参数,让模型的表达能力达到最大程度。打个比方:就像做饭的时候调整盐、糖的比例,调参是为了让模型表现得更好,调节不同的参数以适应特定任务。 在学习深度学习的时候,调参是一个非常重要的环节,但调参能力是需要日积月累提升的,这就需要我们对为什么调参、怎么进行调参、怎么让调参结果最优化进行具体的学习等问题有一个完整且科学的优化模型流程,这才是我们进行调参的最终目的。
因此给大家分享这份5位谷歌工程师合作总结的《深度学习调参经验指南》,同时它也是市面上第一份如此全面的经验指南!由5位谷歌工程师合作总结,当中内容就连Geoffrey Hinton都曾经高度称赞!!!(学深度学习的应该都知道这位大佬吧)
这份手册适合所有学习和使用深度学习的研究生和工程师,包括个人和团队;内容聚焦在大家工作和实验中耗时最多、收获也最多的环节--超参数调整。
手册可以添加我的小助手无偿获取~
手册内容共有以下五大部分:
一、开始新项目的指南
二、提高模型性能的科学方法
三、确定每次训练运行的步数
四、关于训练管道的额外补充
五、常见问题的回答
第一部分从训练一个新的模型开始教大家如何选择模型架构、优化器、batch size、初始配置。比如在选择优化器时,由于所有类型的机器学习问题和模型架构中都不存在最好的那一个,那么我们就坚持选择时下最流行、最成熟的那一个(尤其对于新项目来说)。
第二部分科学提高模型性能,这部分的内容建立在以下两点前提之上:
• 我们已经有一个完全运行的训练pipeline以及能够获得合理结果的配置;
• 有足够的计算资源用于进行有意义的调整实验、用于并行运行多个训练项目
第三部分确定每次训练运行的步数,这部分的内容分为以下两种类型的工作模式:
• 受计算限制的;
• 不受计算限制的。
第四部分关于训练管道的额外补充,用一句话总结就是:输入管道性能受限的原因及干预措施与具体任务高度相关,使用性能分析工具并注意常见的一些问题。具体操作同样可以看手册里面的说明~
第五部分是关于一些大家在调参过程中常见问题的回答,比如:
• 最好的学习率衰减方案是什么?
• 我应该使用哪种学习率衰减方案作为默认值?
• 为什么有些论文有复杂的学习率衰减方案?
• Adam 的超参数应该如何调整?
• 需要多少次试验才能通过Quasi-Random-Search 获得较好的结果?
• 如何调试和缓解优化失败?
• 识别不稳定的训练任务
• 常见不稳定模式的潜在修复方式
• 学习率预热相关问题
• 梯度截断
• 为什么将学习率和其他优化参数称为超参数?
• 为什么不应该调整Batch Size来直接提高验证集性能?
• 所有流行的优化算法的更新规则是什么?