设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

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

2015-3-6 21:35| 发布者: joejoe0332| 查看: 668| 评论: 0|原作者: 李贻丽|来自: CSDN

摘要: 近来,很多人都面临这样一个问题:“机器学习脚本运行时,如何才能避免浪费时间或者拖延呢?”。我认为这是一个非常好的问题,回答这个问题能显示组织水平和工作上的成熟度。我曾对此问题进行过简短的回复,但在这篇 ...
  近来,很多人都面临这样一个问题:“机器学习脚本运行时,如何才能避免浪费时间或者拖延呢?”。


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


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


减少实验

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

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

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

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

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


提高速度

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

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

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


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

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


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


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


调整实验

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

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

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

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


在停机时间实验

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

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

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

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

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


异地实验

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

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

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

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

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


运行实验时做计划

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

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

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

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

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

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


总结

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

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


原文链接:What To Do During Machine Learning Model Runs(译者/李贻丽)



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部