首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >超参数优化的基本方法

超参数优化的基本方法
EN

Data Science用户
提问于 2018-01-03 18:36:15
回答 1查看 943关注 0票数 3

最近,我在dlib博客上阅读了LIPO博客文章:http://blog.dlib.net/2017/12/a-global-optimization-algorithm-worth.html

指出它可用于优化元启发式算法、模拟退火算法或遗传算法的超参数。

我想了解优化超参数的一般工作原理,维基百科页面是我发现的信息最多的页面,但它没有回答我的基本问题:https://en.m.wikipedia.org/wiki/Hyperparameter_优化

我的问题是:优化超参数的基本思想是什么?

如果我想用模拟退火来解决一些问题,我知道启动温度和冷却速率对于决定算法在寻找一个解的效果有多重要。

我知道我可以用一组参数完全运行算法,修改其中一个参数,完全再次运行它,然后重置参数,修改另一个参数,然后再运行它。这可以给我一个数值梯度,我可以用它通过梯度下降来修改参数。

然而..。在这一点上,我不得不运行整个算法3次,只是为了得到一个修改的超参数。

我觉得我一定遗漏了一些显而易见的东西,因为优化超参数需要花费数百倍或数千倍甚至更多的时间来运行整个程序,这一点也没有用。有人能给我线索吗?

EN

回答 1

Data Science用户

回答已采纳

发布于 2018-01-03 21:07:42

超参数优化与模型选择遵循相同的规则。每一组超参数有效地代表了您正在考虑的不同的模型,因此您使用的用于将模型与某些超参数集相匹配的数据需要与用于评估您最终想要使用的超参数集的数据不同。计算超参数的一种常用方法是嵌套交叉验证。这基本上意味着您需要将超参数选择作为您的模型培训过程的一部分,并且当您评估您的模型时,您会对整个过程进行前后评估,即将超参数调优作为模型培训的一个组成部分来处理,以便对您的培训过程进行交叉验证。在(-统计学习要素)第7.10.2节(“进行交叉验证的错误和正确方式”)中有一个很好的讨论,您可以在网上免费阅读和/或下载。一般的想法是,如果你不小心,你实际上可以过于适合您的评估数据。和这个演示一起玩,自己看看。

但是是的,你的直觉是正确的。超参数调整通常在计算上非常昂贵。人们有时试图最小化这种代价的一种方法是将可行参数的搜索空间限制在一个小的离散集合上,例如网格搜索。另一种方法是在参数空间中使用guassian进程或KDEs来实现近似成本面。您甚至可以使用多武装匪徒方法。

坦率地说,只要您遵循适当的交叉验证规则,就可以使用几乎任何非线性优化技术来进行超参数优化。诀窍是从你愿意花费多少时间/精力/计算来计算你的成本,而不是在你的模型中探索参数和潜在的改进。此外,人们也担心重复交叉验证/保留评价的限度,但那是另一个兔子洞。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/26239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档