前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在机器学习模型运行时保持高效的方法

在机器学习模型运行时保持高效的方法

作者头像
CSDN技术头条
发布2018-02-09 11:40:41
9130
发布2018-02-09 11:40:41
举报
文章被收录于专栏:CSDN技术头条CSDN技术头条

近来,很多人都面临这样一个问题:“机器学习脚本运行时,如何才能避免浪费时间或者拖延呢?”。

我认为这是一个非常好的问题,回答这个问题能显示组织水平和工作上的成熟度。

我曾对此问题进行过简短的回复,但在这篇文章里,我会详述我的方法,并教你从几个角度思考这个问题,缩减消耗时间,甚至彻底避免时间的浪费。

减少实验

思考为什么要运行模型。你肯定会执行一种探索性数据分析的形式。

你努力去了解问题,以期让结果达到某种精确程度,可能是为了一篇报告需要的结果,也可能是希望模型具有可操作性。

实验可以让你更了解这个问题。当然,你也需要十分清楚该从每个实验中学到什么。

如果连一个清楚明白的问题都还没有,想想究竟是否需要进行实验。

尊重多次实验得出的结论,并尽可能将其融入你对问题的理解。这可能是日记或技术报告之类的半正式的工作结果。

提高速度

现代编程的“编译-运行-修复”模式效率很高,可当即得出结果,于是你可以持续不断测试想法,修正路线。

这个过程并非一直如此高效。工程师就惯用纸笔手工设计模块,检查逻辑。如果在编程中加入数学运算,他们也很有可能使用这一进程。

单元测试是个很有用的工具,它可以自动重复运行检查过程。而对于测试设计来说,速度尤为重要。反馈速度越快,调整路线修正错误也就越快。

下面教你如何获得想要的速度

你想要快速得到的反复验证的结果,这样你才能继续提出后续问题。但这不是说要设计效果欠佳的实验,而是要设计足够宏观或具体到只够验证一个问题的实验。

提高实验速度最简单的方法是使用数据的简化样本。这个技术简单到经常会被忽略掉。

往往你正在寻找的效果是可从数据中预测到的,无论是数据本身的性质,如异常值,还是数据模型的准确性。

调整实验

有些实验本身就很慢,如调整超参数。事实上,当追求的是最佳准确度时,调整会变成一种享受。

要彻底避免手工调整任何参数,这是一个陷阱!我的建议是使用如随机或网格搜索的搜索方法,有条不紊地调整实验。

采集结果并选取实验得出的最优参数。

如果希望获得更好的结果,设计后续实验时可在参数空间内减少超数据库,改为使用梯度(或准梯度)为基础的搜索算法。

在停机时间实验

不要在高效运算时间进行实验。如果白天工作时间完成了工作,不要直接关机,可以在这段时间集中处理一些大型任务,比方说运行模型。

在不工作时安排实验。夜里、午餐时间以及整个周末都是很好的选择。

停机时间运行实验意味着你需要提前安排。如果你能批处理实验,事情会容易得多。

花点时间来将五到十个实验分为一批,准备运行模型,最后在停机时间按顺序运行或并行运行实验。

可能还需要解耦问题和实验结果的规则。好处则是能在最快的速度获得对问题最深度的认识。

异地实验

某些实验可能会持续数天或数周,根本无法在工作站运行。

长期运行的实验可以充分利用云计算服务器(如EC2等)或本地计算服务器。无论其本地环境如何,这些计算服务器都不是实时使用的。你给出问题,得到答案。

将问题列好,有序地解决,再纳入不断增长的知识库中可以更有效地利用计算服务器。

例如,可以设置每天(或每晚)一个实验。我常常想在新项目上使用这种模式。这可以帮助维持好的势头。

当想法没那么多时,可以在问题列表中加入考虑不完备的优化实验,以调整运转良好时得到的参数。

运行实验时做计划

有时候,不得不在实时工作站上运行实验。测试进行时,工作站必须停止工作。原因可能是一些不能耽搁的实时性要求。

发生这种情况时,要记住你的项目和想法并没有停止,停下的只有工作站。

拿出文本编辑器或纸笔(纸笔是首选,这样就不用妨碍实验运行)。利用这段时间深入思考项目。制作列表,如:

  • 列出想要进行的实验,并确定其优先顺序
  • 列出问题、预期答案,设置必需的和可能影响结果的每个实验
  • 列出假设和可以破解这些假设的实验,并确定其优先顺序
  • 列出想要编写单元测试的代码分区,并确定其优先顺序
  • 列出问题的替代观点和框架。

勇于创新,考虑测试项目长期的信念。

我喜欢在一天结束时做创造性的工作,睡觉时让潜意识处理这些问题。我也喜欢夜间在工作站上运行实验,让它和潜意识作伴。

总结

这篇文章介绍了一些机器学习模型运行时保持高效的方法。以下是可用方法的总结:

  • 用实验可以帮助你理解多少问题来确定每个实验的必需性。
  • 设计运行更快的实验,使用数据样本提高实验速度。
  • 不要手动调整超参数,设计自动化实验来回答模型校准问题。
  • 停机时间进行实验,如夜里、午休时间和周末。
  • 批处理实验,这样就可以按照队列安排执行。
  • 授权工作站以外的计算服务器运行实验,以提高效率。
  • 如果必须运行封闭实时实验,利用这段时间来深入思考问题、设计未来实验以及挑战基础假设。

原文:What To Do During Machine Learning Model Runs

http://machinelearningmastery.com/machine-learning-model-running/

(译者/李贻丽 责编/周建丁)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CSDN技术头条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档