机器学习模型的超参数优化 | 原力计划

作者 | deephub

责编 | 王晓曼

出品 | CSDN博客

头图 | CSDN付费下载自东方IC

引言

 

模型优化是机器学习算法实现中最困难的挑战之一。机器学习和深度学习理论的所有分支都致力于模型的优化。

机器学习中的超参数优化旨在寻找使得机器学习算法在验证数据集上表现性能最佳的超参数。超参数与一般模型参数不同,超参数是在训练前提前设置的。举例来说,随机森林算法中树的数量就是一个超参数,而神经网络中的权值则不是超参数。

其它超参数有:

  • 神经网络训练中的学习率

  • 支持向量机中的 c cc 参数和 γ \gammaγ 参数

  • k 近邻算法中的 k kk 参数

  • ……

超参数优化找到一组超参数,这些超参数返回一个优化模型,该模型减少了预定义的损失函数,进而提高了给定独立数据的预测或者分类精度。

分类算法中的超参数

 

超参数优化方法

 

超参数的设置对于模型性能有着直接影响,其重要性不言而喻。为了最大化模型性能,了解如何优化超参数至关重要。接下来介绍了几种常用的超参数优化方法。

1.手动调参

很多情况下,工程师们依靠试错法手动对超参数进行调参优化,有经验的工程师能够很大程度上判断超参数如何进行设置能够获得更高的模型准确性。但是,这一方法依赖大量的经验,并且比较耗时,因此发展出了许多自动化超参数优化方法。

2. 网格化寻优(Grid Search)

网格化寻优可以说是最基本的超参数优化方法。使用这种技术,我们只需为所有超参数的可能构建独立的模型,评估每个模型的性能,并选择产生最佳结果的模型和超参数。

网格化寻优方法:

以一个典型的核函数为 RBF 的 SVM 分类模型为例,其至少有两个超参数需要优化——正则化常数 c cc 和 核函数参数 γ \gammaγ。

这两个超参数都是连续的,需要执行网格化寻优为每个超参数选择合理取值。假设 c∈10,100,1000,γ∈0.1,0.2,0.5,1.0c\in {10,100,1000}, \gamma \in {0.1,0.2,0.5,1.0}c∈10,100,1000,γ∈0.1,0.2,0.5,1.0。

那么网格化寻优方法将对每一对( c cc ,γ \gammaγ)赋值后的 SVM 模型进行训练,并在验证集上分别评估它们的性能(或者在训练集内进行 cross-validation)。

最终,网格化寻优方法返回在评估过程中得分最高的模型及其超参数。

通过以下代码,可以实现上述方法:

首先,通过 sklearn 库调用 GridSearchCV 。

from sklearn.datasets import load_iris
from sklearn.svm import SVC
iris = load_iris()
svc = SVR()
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVR
grid = GridSearchCV(
        estimator=SVR(kernel='rbf'),
        param_grid={
            'C': [0.1, 1, 100, 1000],
            'epsilon': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10],
            'gamma': [0.0001, 0.001, 0.005, 0.1, 1, 3, 5]
        },
        cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)

然后拟合网格:

grid.fit(X,y)

输出结果:

#print the best score throughout the grid search
print grid.best_score_
#print the best parameter used for the highest score of the model.
print grid.best_param_

网格化寻优的一个缺点是,当涉及到多个超参数时,计算数量呈指数增长。并且这一方法并不能保证搜索会找到完美的超参数值。

 

随机寻优(Random Search)

 

通常并不是所有的超参数都有同样的重要性,某些超参数可能作用更显著。

而随机寻优方法相对于网格化寻优方法能够更准确地确定某些重要的超参数的最佳值。

随机寻优方法:

随机寻优方法在超参数网格的基础上选择随机的组合来进行模型训练。

可以控制组合的数量,基于时间和计算资源的情况,选择合理的计算次数。

这一方法可以通过调用 sklearn 库中的  RandomizedSearchCV 函数来实现。

尽管 RandomizedSearchCV 的结果可能不如 GridSearchCV 准确,但它令人意外地经常选择出最好的结果,而且只花费 GridSearchCV 所需时间的一小部分。

给定相同的资源,RandomizedSearchCV 甚至可以优于的结果可能不如GridSearchCV准确。当使用连续参数时,两者的差别如下图所示。

网格化寻优 VS 随机寻优

随机寻优方法找到最优参数的机会相对更高,但是这一方法适用于低维数据的情况,可以在较少迭代次数的情况下找到正确的参数集合,并且花费的时间较少。

通过以下代码,可以实现上述方法:

首先,通过 sklearn 库调用 RandomizedSearchCV 。

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestRegressor
iris = load_iris()
rf = RandomForestRegressor(random_state = 42)
from sklearn.model_selection import RandomizedSearchCV
random_grid = {'n_estimators': n_estimators,
               'max_features': max_features,
               'max_depth': max_depth,
               'min_samples_split': min_samples_split,
               'min_samples_leaf': min_samples_leaf,
               'bootstrap': bootstrap}
rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid, n_iter = 100, cv = 3, verbose=2, random_state=42, n_jobs = -1)# Fit the random search model

然后进行计算:

rf_random.fit(X,y)

输出结果:

#print the best score throughout the grid search
print rf_random.best_score_
#print the best parameter used for the highest score of the model.
print rf_random.best_param_

Output:
{'bootstrap': True,
 'max_depth': 70,
 'max_features': 'auto',
 'min_samples_leaf': 4,
 'min_samples_split': 10,
 'n_estimators': 400}

贝叶斯优化方法(Bayesian Optimization)

 

前面两种方法能够针对单独超参数组合模型进行训练,并评估各自的性能。每个模型都是独立的,因此很易于进行并行计算。

但是每个模型都是独立的,也导致模型之间不具有指导意义,前一模型的计算结果并不能影响后一模型的超参数选择。

而贝叶斯优化方法(顺序优化方法的一种,sequential model-besed optimization, SMBO)则可以借鉴已有的结果进而影响后续的模型超参数选择。

这也限制了模型训练评估的计算次数,因为只有有望提高模型性能的超参数组合才会被进行计算。

贝叶斯优化是通过构造一个函数的后验分布(高斯过程)来工作的,该后验分布最好地描述了要优化的函数。

随着观测次数的增加,后验分布得到改善,算法更加确定参数空间中哪些区域值得探索,哪些区域不值得探索。

当反复迭代时,算法会在考虑到它对目标函数的了解的情况下,平衡它的探索和开发需求。

在每个步骤中,高斯过程被拟合到已知的样本(先前探索的点),后验分布与探索策略(例如UCB(上置信限,upper confidence bound)或EI(预期改善, expected improvement))被用于确定下一个应该探索的点。

通过贝叶斯优化方法,可以更高效的探索超参数变量空间,降低优化时间。

 

基于梯度的优化方法(Gradient-based Optimization)

 

基于梯度的优化方法经常被用于神经网络模型中,主要计算超参数的梯度,并且通过梯度下降算法进行优化。

这一方法的应用场景并不广泛,其局限性主要在于:

  • 超参数优化通常不是一个平滑的过程

  • 超参数优化往往具有非凸的性质

进化寻优(Evolutionary Optimization)

 

进化寻优方法的思想来源于生物学概念,由于自然进化是不断变化的环境中发生的一个动态过程,因此适用于超参数寻优问题,因为超参数寻优也是一个动态过程。

进化算法经常被用来寻找其他技术不易求解的近似解。优化问题往往没有一个精确的解决方案,因为它可能太耗时并且计算资源占用很大。

在这种情况下,进化算法通常可以用来寻找一个足够的近似最优解。

进化算法的一个优点是,它们可以产生出不受人类误解或偏见影响的解决方案。

作为一个一般性的经验法则,任何时候想要优化调整超参数,优先考虑网格化寻优方法和随机寻优方法!

总结

 

在本文中,我们了解到为超参数找到正确的值可能是一项令人沮丧的任务,并可能导致机器学习模型的欠拟合或过拟合。我们看到了如何通过使用网格化寻优、随机寻优和其他算法来克服这一障碍。

版权声明:本文为CSDN博主「deephub」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_46510245/article/details/105910907

6月2日20:00,CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛携手全球顶级开源基金会主席、董事,聚焦中国开源现状,直面开发者在开源技术、商业上的难题,你绝不可错过的开源巅峰对谈!立即免费围观

推荐阅读
你点的每个“在看”,我都认真当成了喜欢
AI科技大本营
关注 关注
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenCV-Python实战(1)——OpenCV简介与图像处理基础
盼小辉丶的博客
08-10 22万+
OpenCV 是一个的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时也提供了 Python 接口,实现了图像处理和计算机视觉方面的很多通用算法。在本文中,将介绍 OpenCV 库,包括它的主要模块和典型应用场景,同时使用 OpenCV-Python 实战讲解图像处理基础要点。
谁来救救过拟合?透过现象看本质,如何利用正则化方法解决过拟合问题
wenyusuran的专栏
03-29 2726
刚开始的时候,模型还不能很好地拟合所有数据点,即无法反映数据分布,这时它是欠拟合的。而随着训练次数增多,它慢慢找出了数据的模式,能在尽可能多地拟合数据点的同时反映数据趋势,这时它是一个性能较好的模型。在这基础上,如果我们继续训练,那模型就会进一步挖掘训练数据中的细节和噪声,为了拟合所有数据点“不择手段”,这时它就过拟合了。
模型优化基础(来自Sayak Paul讲解)
06-09
模型优化基础,来自Sayak Paul讲解的模型优化基础,共包含67页PPT,值得相关研究人员一起来学习。
机器学习模型超参数优化
deephub
05-04 8028
引言 模型优化机器学习算法实现中最困难的挑战之一。机器学习和深度学习理论的所有分支都致力于模型优化机器学习中的超参数优化旨在寻找使得机器学习算法在验证数据集上表现性能最佳的超参数超参数与一般模型参数不同,超参数是在训练前提前设置的。举例来说,随机森林算法中树的数量就是一个超参数,而神经网络中的权值则不是超参数。 其它超参数有: 神经网络训练中的学习率 支持向量机中的 ccc 参数和 γ...
模型优化
weixin_49304690的博客
01-21 286
超参数优化 ① 什么是超参数 超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。超参数的设置主要依赖于经验、实验或经过比较的优选值。以下是一些模型中常见的超参数: 决策树模型树的最大深度; 随机森林模型树的数量; 交叉验证中折叠的额数量; 训练集/测试集的比例等等. 超参数选择主要有随机搜索、网格搜索等方法。 ② 网格搜索 网格搜索指将主要参数以及这些参数的主要取值,通过穷举法产生不同组合,计算并比较预测结果,来寻找这些参数的最优组合。 以下是利用网格搜索法,寻找SVM的最优超参数
机器学习——模型优化
DCGJ666的博客
04-22 1504
机器学习——模型优化模型压缩方法squeezeNet的Fire Module有什么特点? 模型压缩方法 低秩近似 神经网络的基本运算卷积,实则就是矩阵运算,低秩近似的技术是通过一系列小规模矩阵将权重矩阵重构出来,以此降低运算量和存储开销。目前有两种常用的方法:一是Toeplitz矩阵(指矩阵中每条自左上至右下的斜线上的元素相同)直接重构权重矩阵,二是奇异值分解(SVD),将权重矩阵分解为若干个小矩阵。 剪枝与稀疏约束 剪枝是模型压缩领域中一种经典的后处理技术,典型应用如决策树的前剪枝和后剪枝。剪枝技术可以
机器学习-模型优化
weixin_38498942的博客
07-09 989
机器学习模型通过朝正确分类的方向更新其参数(权重和偏差)来学习。学习模型的基本结构,在下面的图片中,我们将展示机器学习模型的基本模块: 在这张照片上,我们可以检测到以下组件 1.训练数据集:基本上是包含训练数据的高速磁盘 2.一批样品:成对的列表(X,Y),由输入,预期输出组成,例如X可以是图像,Y可以是标签“ cat” 3.参数:模型图层用于将X映射到Y的一组参数 4.模型:将输入X和权重W转换为得分(可能为Y)的一组计算层 5.损失函数:负责说我们的得分与理想响应Y相差多远,损失函数的输出是一个标量。
印尼洪水敏感性评估:人工智能模型在地球科学中的应用
地球科学中的人工智能2(2021)215印度尼西亚洪水敏感性评估中使用人工神经网络Stela Priscillia,*,Calogero Schillacib,Aldo Lipaniaa联合王国伦敦大学学院土木、环境和地质工程系b欧洲联盟委员会,联合研究中心...
人类多指手的抓取生成:基于手-物体接触的一致性建模和自我监督的任务
11107面向抓取生成江瀚文*刘少伟* 王佳顺王小龙UC圣地亚哥输入输出输入+输出触点输入输出输入+输出触点图1:生成的人类对域内和域外对象的抓取。最后一列显示了对象和手接触贴图区域越亮,手和对象之间的接触值越高...
三万字「2021」DeFi行业全景扫描
Odaily_的博客
01-06 1883
DeFi 正如一片刚刚开始垦殖的“新月之地”,各式各样的重要创新在不断涌现,我们期待着它的扩张和对传统金融的征服。作者 | 黄雪姣 运营 | 盖遥 编辑 |郝方舟出品|Odai...
机器学习模型优化
hblg_bobo的博客
11-09 1068
机器学习部分优化算法介绍
什么是超参数
Qamra_Chen的博客
04-05 3723
什么是超参数? 在看机器学习时,经常碰到一个叫超参数的参数(hyperparameter),所以到底什么是超参数超参数的定义:在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。 理解:超参数也是一个参数,是一个...
机器学习——最优化模型
最新发布
qq_60688380的博客
03-31 1004
在给定的约束条件下,选择最优的参数和使得目标函数最大化/最小化。
机器学习】基于线性回归的模型优化和正则化
qq_61260911的博客
04-06 1696
机器学习中,优化模型参数是非常关键的一步。针对不同的模型和数据集,我们需要选择合适的优化方法以获得最优的模型参数。同时,正则化方法可以有效减少模型复杂程度,避免过拟合的情况,提高模型的泛化能力。在机器学习中,无论是线性模型还是非线性模型,我们需要选择合适的优化方法以获得最优的模型参数。常用的梯度下降法是优化模型参数的常用方式之一,其中小批量梯度下降法是一种高效的优化方法,每次选择小批量的数据进行计算,可以减少计算量,提高模型的训练速度。
机器学习模型选择和模型优化
m0_63997099的博客
03-02 1462
有监督学习
python机器学习-模型优化(六)
weixin_42749734的博客
08-28 1117
机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。 超参数是不直接在估计器内学习的参数。在scikit-learn包中,它们作为估计器类中构造函数的参数 进行传递。典型的例子有:用于支持向量分类器的C、kernel和gamma ,用于Lasso的alpha 等。 搜索超参...
如何快速提高机器学习模型的性能
修炼之路
11-10 4640
前言 本篇文章主要介绍,如何针对机器学习模型的在训练集和开发集(验证集)上的评估指标来使用不同的技巧快速提高模型的评估性能。针对机器学习模型的性能优化我们有很多种方式,如增大数据集、增大模型的复杂度、使用更复杂的模型架构、修改激活函数、正则化等,面对不同情况只有选择正确的方法才能有效提高模型的性能,否则可能会造成时间的浪费,从而影响项目的开发进度。本篇文章的主要内容来至于deeplearning....
机器学习模型优化模型融合
qq_14945847的博客
03-14 911
二、个体学习器依赖的融合-boosting:1,boosting方法的思想:Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。梯度提升树:是对提升树算法的改进,提升树算法只适合误差函数为指数函数和平方误差,对于一般的损失函数,梯度提升树算法利用损失函数的负梯度在当前模型的值,作为残差的近似值。这个也好理解,一般用于分类模型
写文章

热门文章

  • 深度学习面试必备的25个问题 144798
  • 清华周界详解《基于图神经网络的事实验证》 | 百万人学AI 131140
  • 感动!有人将吴恩达的视频课程做成了文字版 106040
  • 用AI给黑白照片上色,复现记忆中的旧时光 68097
  • 算法工程师过去这一年:理想很丰满,现实很骨感 64369

分类专栏

  • 行业资讯 251篇
  • 芯片 14篇
  • 物联网 10篇
  • 测试 2篇
  • 笔记 11篇
  • 软硬件 2篇
  • 百度智能云 5篇
  • 新能源
  • ADAS
  • 自然语言处理 3篇
  • 大数据 5篇
  • 光线追踪 1篇
  • GPU 1篇
  • 多线程 1篇
  • OpenAI 2篇
  • GPT-3 2篇
  • Golang 1篇
  • facebook 1篇
  • 算法 5篇
  • 微软 2篇
  • chrome 1篇
  • firefox 1篇
  • 搜索引擎 1篇
  • html 1篇
  • 超链接 1篇
  • 图片识别 1篇
  • http 1篇
  • DDoS 1篇
  • 无人驾驶 1篇
  • 人群密度 1篇
  • 金融科技 2篇
  • 评人工智能如何走向新阶段? 33篇
  • 数据众包 2篇
  • 电动车 1篇
  • 知乎 1篇
  • AI优秀案例奖 1篇
  • 多场景匹配 1篇
  • 微软小冰 3篇
  • 音乐 1篇
  • OPPO 1篇
  • 特步 1篇
  • 工作站 1篇
  • 华为 1篇
  • 竞赛 1篇
  • AI 546篇
  • 人工智能 540篇
  • 机器人 9篇
  • 神经网络 10篇
  • 机器学习 51篇
  • Python 24篇
  • 百度 30篇
  • 图像开放平台 2篇
  • 区块链 1篇
  • 开源 6篇
  • 深度学习 25篇
  • 语音识别 7篇
  • 云计算 5篇
  • AI名人堂 5篇
  • AI聚变 1篇
  • NLP 12篇
  • 数据科学 6篇
  • 强化学习 4篇
  • 计算机视觉 12篇

最新评论

  • 谷歌创始人谢尔盖重返一线!现在每天都回公司敲代码,认为员工用 AI 编码的积极性不够,承认错失机器人浪潮...

    1127670770: 777

  • o1 发布后 Sam Altman 最新访谈:AI 发展不仅没有放缓,而且我们对未来几年已经胜券在握

    史一试: 山姆奥特曼 加油!

  • o1 发布后 Sam Altman 最新访谈:AI 发展不仅没有放缓,而且我们对未来几年已经胜券在握

    Lazy龙: 周五周五,周五周五;周五周五,敲锣打鼓。

  • 谷歌创始人谢尔盖重返一线!现在每天都回公司敲代码,认为员工用 AI 编码的积极性不够,承认错失机器人浪潮...

    终不似·少年游: 本以为是篇新闻没想到是卖ai的

  • 提示工程迎来末日!OpenAI 深夜突发 o1 模型,自带思维链,可以推理和自我反思

    你骄傲地飞远: ai不一定能识别小数点

大家在看

  • 基于OpenCV的单目测距 675
  • 如何在React中实现条件渲染?
  • IT行业中的工作生活平衡探讨
  • C++继承(inheritance) 1122
  • 基于Java+SpringBoot+Mysql宠物领养系统功能设计与实现十五

最新文章

  • 阿里Qwen2.5重回开源模型榜一王座;GPT-4o高级语音将在24日发布 | AI头条
  • 大语言模型需要自己的语言吗?
  • o1 发布后 Sam Altman 最新访谈:AI 发展不仅没有放缓,而且我们对未来几年已经胜券在握
2024
09月 24篇
08月 53篇
07月 65篇
06月 68篇
05月 73篇
04月 63篇
03月 64篇
02月 20篇
01月 12篇
2023年367篇
2022年624篇
2021年866篇
2020年1111篇
2019年1725篇
2018年1194篇
2017年309篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王沧州网站优化平台优化网站方法首先易 速达网站优化方案如何写服务好的企业网站优化哪家靠谱小型企业网站优化好的网站关键词优化公司优化网站的用那些软件福田搜索引擎网站优化广告口碑好的网站排名优化软件崇明区企业官网网站优化案例西藏网络推广网站优化建设下陆区网站seo优化排名影响网站关键词排名优化的因素兰州网站优化排名机构网站郑州网站优化推广排名网站推广优化捌金手指下拉廊坊知名的网站优化有哪些深圳网站优化费用网站优化怎么收费马鞍山市网站优化哪家有实力杭州网站优化哪家价钱合理宝安网站优化推广外包龙岗网站优化排名鄂州外包网站优化哪里好连云港网站优化公司网站优化排名seo扬州网站权重优化廉江seo网站关键词优化白云网站seo优化价格罗湖百科网站优化的有效方式香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化