前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >超参数搜索——网格搜索和随机搜索

超参数搜索——网格搜索和随机搜索

作者头像
chenjx85
发布2018-08-16 11:26:59
2.9K0
发布2018-08-16 11:26:59
举报
文章被收录于专栏:chenjx85的技术专栏

我们在搜索超参数的时候,如果超参数个数较少(三四个或者更少),那么我们可以采用网格搜素,一种穷尽式的搜索方法。

但是当超参数个数比较多的时候,我们仍然采用网格搜索,那么搜索所需时间将会指数级上升。

比如我们有四个超参数,每个范围都是[10,100],那么我们所需的搜索次数是10*10*10*10=10^4。

如果再增加一个超参数,那么所需的搜索次数是10^5,搜索时间指数级上升。

所以很多很多个超参数的情况,假如我们仍然采用网格搜索,那么……gg,算到天荒地老就不一定有结果。

所以出现了这样的做法,网格搜索,但是网格取稀疏一点,比如上面例子中的[10,100],我们就去10,30,50,70,90这几个数,降低一下搜索次数。

这样变快了一点,但是有可能找到的超参数不是全局最小。

所以又有人提出了随机搜索的方法,随机在超参数空间中搜索几十几百个点,其中就有可能会有比较小的值。

这种做法比上面稀疏化网格的做法快,而且实验证明,随机搜索法结果比稀疏化网格法稍好。

笔者刚刚在寻找资料的时候,还看到了一种做法,批量化随机搜索法。具体做法如下:

假设我们要找25个点,那么我们把这25个分成5个批次,每个批次5个点。

我们做第一个批次的时候,假设超参数范围是[0,100],我们有1个超参数(容易理解),那么我们把这个范围切分为[0,20],[20,40],[40,60],[60,80],[80,100]。

也就是把范围平均切分为5份,我们在每一份之中随机找到一个点,最终可以找到5个点,我们再找到里面的最小点。

接着,在第二个批次之中,我们在找到的最小点附近,再找5个随机点,在这5个随机点之中得到最小点。

接着,在第三个批次之中,重复同样的操作。

这样可以保证我们找到一个局部最小值点,结果可能会比随机搜索稍好一点。

当然,如果随机搜索直接得到更好的局部最小值,甚至全局最小值,那么……只能说你的运气爆表了。

这种批次随机寻找的方法,基本上可以说优于稀疏化网格法,但不一定优于随机搜索法。

参考资料:

1、笔者刚刚提到的批次随机搜索法的来源:https://yq.aliyun.com/articles/68266

2、知乎关于这部分知识的一些问答:https://www.zhihu.com/question/57394983

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档