大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
什么是Grid Search 网格搜索?
网格搜素是一种常用的调参手段,是一种穷举方法。给定一系列超参,然后再所有超参组合中穷举遍历,从所有组合中选出最优的一组超参数,其实就是暴力方法在全部解中找最优解。
为什么叫网格搜索,因为假设有两个超参,每个超参都有一组候选参数。这两组候选参数可以两两组合,把所有组合列出来就是一个二维的网格(多个超参两两组合可以看作是岗高维空间的网格),遍历网格中的所有节点,选出最优解。所以叫网格搜索。
存在的问题
使用网格搜索会导致,测试集上的表现效果比真实情况要好一些,因为测试集是用来对参数进行调整,参数会最终被调整为在测试集上表现效果最优的情况,而测试集样本量小,真实情况的样本量应该会远大于测试集的情况,所以测试集的样本数据分布情况与真实的样本数据分布情况有所偏差。
解决办法
对数据集多一次划分,模拟真实数据集的情况。将数据集划分为训练集、验证集、测试集。训练集是用于模型训练,验证集用于模型调参,测试集用于衡量调参后模型的好坏。这里有个疑问,如果验证集划分的太小,那么验证集对整体数据集的表现越弱,越具有偶然性,那么调参的结果可能对于整体数据集更差。这里可以引入交叉验证的方法减少偶然性。
使用场景
网格搜索可以使用在机器学习算法调参中,而很少使用在深度神经网络的调参中。因为网络搜索其实并没有什么特别的优化方法,就是简单的穷举。这种方法不使用网格搜索手动去穷举也是可以实现的,只不过网格搜索自动化一些,不需要手工的去一个一个尝试参数。本质就是把所有参数的可能都运行了一遍,对于深度神经网络来说,运行一遍需要很长时间,穷举的去调参,效率太低,更何况随着超参数数量的增加,超参组合呈几何增长。而对于机器学习的算法来说,运行时间相对较短,甚至对于朴素贝叶斯这种算法不需要去多次迭代所有样本,训练时间很快,可以使用网格搜索来调参。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179465.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...