详细内容或原文请订阅后点击阅览
超参数调整的 Hitchhiker 指南
我们在 Taboola 上实施和使用超参数调整。
来源:Another Datum这篇文章最初由我在 Taboola 工程博客上发表。
这篇文章最初由我在 Taboola 工程博客上发表。 Taboola 工程博客现在,距离我们的第一个深度学习项目出现已经过去了一年多的时间,我们必须继续前进,提供我们所能提供的最佳模型。
第一个深度学习项目这样做涉及大量研究,尝试不同的模型,从简单的词袋、LSTM 和 CNN,到更高级的注意力、MDN 和多任务学习。
词袋 LSTM CNN 注意力 MDN 多任务学习即使我们尝试过的最简单的模型也有许多超参数,调整这些超参数可能比我们最终使用的实际架构更重要 - 就模型的准确性而言。
虽然在超参数调整领域有很多活跃的研究(参见 1、2、3),但实施这一调整过程却避开了人们的关注。
1 2 3如果你四处询问人们他们如何调整他们的模型,他们最有可能的回答是“只需编写一个脚本就可以了”。嗯,说起来容易做起来难……
显然,在实现这样的脚本时,您应该记住一些事情。
在这里,在 Taboola,我们实现了一个超参数调整脚本。 让我与您分享我们在此过程中学到的东西……
让我们从简单的开始
有时使用 scikit-learn 进行超参数调整可能就足够了 - 至少对于个人项目而言。
scikit-learn对于长期项目,当您需要跟踪您执行的实验,并且您尝试的不同架构的种类不断增加时,它可能不够用。
基本内容
脚本的第一个版本很简单,但涵盖了我们的大部分需求。要求如下:
易于运行
您将多次运行此脚本。因此,指定要运行的实验应该尽可能简单。
我们最终得到了以下 JSON 格式:
{ "architecture" : "lstm-attention" , "date-range" : [[ "2017-01-01" , "2017-04-01" ]], : { : [ 1 , 2