深度学习调优指南中文版

深度学习调优指南中文版

GitHub:schrodingercatss/tuning_playbook_zh_cn

这不是官方认证的 Google 产品。

Varun Godbole † , George E. Dahl † , Justin Gilmer † , Christopher J. Shallue ‡ , Zachary Nado †

† 谷歌研究,谷歌大脑团队

‡ 哈佛大学

目录

这份手册是为谁准备的?

本文档适用于对最大化深度学习的性能感兴趣的工程师和研究人员(包括个人和团队)。我们假定您具备机器学习和深度学习概念的基本知识。

我们的重点是超参数调优的过程,但我们还涉及深度学习学习的其他方面。例如工作流实施和优化,但这些方面并不详尽

我们假设机器学习问题是监督学习或类似的东西(例如自监督学习)。但是,本文档中描述的技术也可能适用于其他类型的问题。

为什么需要这份调优手册?

目前,要使深度神经网络在实践中正常运行,需要付出大量的努力和猜测。更糟糕的是,目前很少有人记录下那些深度学习中获得良好结果的实际方法。一方面,通常,论文忽略了导致最终结果的过程,以呈现更清晰的原理。另一方面,处理商业问题的机器学习工程师很少有时间回顾并概括他们的调参过程。教科书也往往回避实用指南,而偏重于基本原理,即使它们的作者具有在应用工作中提供有用建议的经验。在准备创建此文档时,我们找不到任何系统性的资料来解释如何使用深度学习获得良好的结果. 相反,我们看到了博客文章和社交媒体上的建议片段、从研究论文附录中收集的技巧、特定项目或工作流的偶然案例研究,以及很多困惑。在深度学习领域,专家和新手用着表面上类似的方法,但所取得的结果之间存在着巨大的差距。与此同时,这些专家也很乐意承认他们所做的一些事情可能没有充分的理由。随着深度学习的成熟并对世界产生更大的影响,社区需要更多涵盖有用方法的资源,包括对于获得良好结果至关重要的所有实用细节。

我们是一个由五名研究人员和工程师组成的团队,多年来一直致力于深度学习。我们已经将深度学习应用到从语音识别到天文学的方方面面,并在此过程中学到了很多东西。本文档源于我们自己训练神经网络、教授学生以及为我们的同事提供实践建议的经验。虽然深度学习已经从少数学术研究实验室中实践的机器学习方法发展成为为数十亿人使用的产品提供动力的技术,但深度学习在工程领域仍处于起步阶段,我们希望本文档能鼓励其他人也来帮助系统化该领域的实验细节。

这份文件是在我们试图实现我们自己的深度学习方法时产生的,因此它只代表作者在撰写本文时的观点,而不是任何客观事实。它被特别强调是因为我们在调整超参数方面遇到了困难,但它也涵盖了我们在工作中遇到(或看到出错)的其他重要问题。我们希望这项工作成为一份活的文件,能随着我们理解的改变从而成长和演变。例如,一份关于如何调试和如何减少训练失败的文档在两年前是不可能写出来的,因为它这得基于最近的结果和正在进行的研究。不可避免地,我们的在此文档中一些建议也将需要更新以考虑新的结果和改进的工作流程。我们不知道最好的深度学习秘诀,但在大众开始记录它并讨论各个步骤之前,我们不能指望找到它。为此,我们鼓励发现我们的建议存在问题的读者提出替代建议以及令人信服的证据,以便我们更新建议。我们也希望看到可能有不同建议的替代指南和方式,以帮助大众追求最佳方法。最后,任何标有🤖表情符号的地方是我们要进一步调查的地方。只有在尝试编写这本 playbook 之后,我们才完全清楚在深度学习从业者的工作流程中可以找到多少有趣及被忽视的研究问题。


关于明柳梦少

坚守自己的原则,不随波逐流。