机器学习——网格搜索和交叉验证
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
- 网格搜索
🕐网格可以发现超参值的最优组合从而达到进一步改进模型性能的目的。网格搜索方法的实现原理是采用暴力穷尽搜索方式不同的超参会被设置成列表中不同的值每次评估参数合并后的模型性能以获得集合中参数值的最优组合。
- 为什么叫网格搜索
🕑以有两个参数的模型为例参数a有3种可能参数b有4种可能把所有可能性列出来可以表示成一个3*4的表格其中每个cell就是一个网格循环过程就像是在每个网格里遍历、搜索所以叫grid search。
- 交叉验证
🕒交叉验证经常与网格搜索进行结合作为参数评价的一种方法这种方法叫做grid search with cross validation。sklearn因此设计了一个这样的类GridSearchCV这个类实现了fitpredictscore等方法被当做了一个estimator使用fit方法。
🌏该过程中1搜索到最佳参数2实例化了一个最佳参数的estimator
- 什么情况下可以用交叉验证调整模型的超参数
⚽ 一般来讲调整模型的超参数是在确定了一组初始参数后在训练过程中人工的去调整。
💭 一般在训练时几个epochs结束后会跑一次验证集看看效果。(注意epochs的个数验证得太频繁会影响训练速度)
🔑 这样做的第一个好处是可以及时发现模型或者参数的问题比如mAP不增长或者增长很慢等情况这时可以及时终止训练重新调参或者调整模型而不需要等到训练结束。一般来讲我们会隔一段时间保存神经网络的参数称之为checkpoints当我们中止训练后重新开始的时候可以从checkpoints中恢复网络的权重并且以根据验证集的情况进行调整后的超参数进行训练。
🔑 另外一个好处是验证模型的泛化能力如果在验证集上的效果比训练集上差很多就该考虑模型是否过拟合了。当察觉到有过拟合的倾向是我们可以停止训练这种策略称之为早停Early Stopping。同时还可以通过验证集对比不同的模型。在一般的神经网络中 我们用验证数据集去寻找最优的网络深度number of hidden layers)或者决定反向传播算法的停止点或者在神经网络中选择隐藏层神经元的数量
- 简单交叉验证的优缺点
⭕优点
处理简单只需随机把原始数据分为两组即可
❌缺点
但没有达到交叉的思想由于是随机的将原始数据分组所以最后验证集分类准确率的高低与原始数据的分组有很大的关系得到的结果并不具有说服性。
- 网格搜索的优缺点
💡在实际应用中网格搜索法一般会先使用较广的搜索范围和较大的步长来寻找全局最优值可能的位置然后会逐渐缩小搜索范围和步长来寻找更精确的最优值。这种操作方案可以降低所需的时间和计算量但由于目标函数一般是非凸的所以很可能会错过全局最优值。