0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kaggle知识点:7种超参数搜索方法

颖脉Imgtec 2025-02-08 14:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文转自:Coggle数据科学


超参数搜索确实是机器学习生命周期中不可或缺的一步,特别是在模型性能方面。正确的超参数选择可以显著提高模型的准确性、对未见数据的泛化能力以及收敛速度。不当的超参数选择可能导致过拟合或欠拟合等问题。

一些常见的超参数例子包括梯度基算法中的学习率,或者决策树算法中树的深度,这些可以直接影响模型准确拟合训练数据的能力。超参数调优涉及在复杂的、高维的超参数空间中搜索模型的最佳配置。挑战不仅在于计算成本,还在于模型复杂性、泛化能力和过拟合之间的权衡。


方法1:网格搜索

网格搜索(Grid Search)是一种流行的超参数优化方法,它系统地遍历多种超参数的组合。这种方法简单、直观,但可能在高维参数空间中变得非常耗时和计算密集。

d9bfb698-e5e5-11ef-9434-92fbcf53809c.png

网格搜索会生成所有可能的参数组合。如果你有两个超参数,每个参数有3个可能的值,那么网格搜索将会产生 9 种不同的参数组合。

简单易懂:网格搜索的概念直观,易于理解和实现。

全面搜索:如果你定义的参数网格足够密集,网格搜索可以保证找到全局最优解。

  • 计算成本高:随着超参数数量和每个参数的可能值数量增加,需要评估的组合数量呈指数级增长,这可能导致计算成本非常高。

fromsklearnimportsvm,datasets
fromsklearn.model_selectionimportGridSearchCV
iris=datasets.load_iris()
parameters={'kernel':('linear','rbf'),'C':[1,10]}
svc=svm.SVC()
clf=GridSearchCV(svc,parameters)
clf.fit(iris.data,iris.target)
sorted(clf.cv_results_.keys())


方法2:随机搜索

随机搜索(Random Search)是另一种流行的超参数优化方法,与网格搜索相比,它不尝试遍历所有可能的参数组合,而是在参数空间中随机选择参数组合进行评估。

d9f3b722-e5e5-11ef-9434-92fbcf53809c.png

随机搜索会从这些分布中随机抽取参数值,形成参数组合。每次抽取都是独立的,这意味着同一参数的不同组合可以被多次抽取。

灵活性:随机搜索可以很容易地处理连续参数和离散参数。

避免局部最优:由于随机搜索的随机性,它不太可能陷入局部最优解,有更高的机会探索到全局最优解。

结果不可重复:每次运行随机搜索可能会得到不同的结果,因为参数组合是随机选择的。

fromsklearn.datasetsimportload_iris
fromsklearn.linear_modelimportLogisticRegression
fromsklearn.model_selectionimportRandomizedSearchCV
fromscipy.statsimportuniform
iris=load_iris()
logistic=LogisticRegression(solver='saga',tol=1e-2,max_iter=200,
random_state=0)
distributions=dict(C=uniform(loc=0,scale=4),
penalty=['l2','l1'])
clf=RandomizedSearchCV(logistic,distributions,random_state=0)
search=clf.fit(iris.data,iris.target)
search.best_params_


方法3:贝叶斯优化贝叶斯优化核心思想是构建一个概率模型,该模型能够预测目标函数(通常是模型的性能指标,如准确率或损失)在不同超参数组合下的表现。

da184736-e5e5-11ef-9434-92fbcf53809c.png

这个概率模型通常是基于高斯过程(Gaussian Process),它能够根据已有的观测数据(即之前评估过的超参数组合及其对应的性能指标)来预测新的超参数组合的性能,并据此选择新的超参数组合进行评估。

避免稀疏梯度和探索-利用平衡问题:贝叶斯优化避免了传统优化方法中遇到的稀疏梯度和探索-利用平衡问题的影响。

提高搜索效率:贝叶斯优化能够有效地搜索高维参数空间,从而提高搜索效率

defblack_box_function(x,y):
"""Functionwithunknowninternalswewishtomaximize.

Thisisjustservingasanexample,forallintentsand
purposesthinkoftheinternalsofthisfunction,i.e.:theprocess
whichgeneratesitsoutputvalues,asunknown.
"""
return-x**2-(y-1)**2+1

frombayes_optimportBayesianOptimization
pbounds={'x':(2,4),'y':(-3,3)}

optimizer=BayesianOptimization(
f=black_box_function,
pbounds=pbounds,
random_state=1,
)

optimizer.maximize(
init_points=2,
n_iter=3,
)


方法4:模拟退火模拟退火算法(Simulated Annealing,简称SA)是一种基于概率的启发式随机搜索优化算法,灵感来源于物理中的退火过程。它通过模拟金属退火过程中分子运动的方式来解决复杂的优化问题。

da38f314-e5e5-11ef-9434-92fbcf53809c.png

从一个初始解开始,并设置一个较高的初始温度。在当前解的邻域中随机生成一个新的解,计算新解的目标函数值。如果新解比当前解好,则接受新解;如果新解比当前解差,仍然以一定的概率接受新解。

  • 全局优化:模拟退火算法能够在整个解空间中进行搜索,有助于找到全局最优解,尤其适用于解决具有多个局部最优解的复杂问题。

随机性:算法通过随机扰动和接受劣解的方式,增加了搜索过程的随机性,有助于跳出局部最优解。


方法5:遗传算法遗传算法(Genetic Algorithm, GA)是一种模拟自然界进化过程的优化算法,它基于自然选择和群体遗传机理,通过模拟繁殖、杂交和突变等现象来求解优化问题。da593714-e5e5-11ef-9434-92fbcf53809c.png随机生成一个初始种群,每个个体(解决方案)被编码为一个染色体,将两个个体的一部分基因组合在一起,生成新的个体。随机更改个体的一些基因值,以引入新的遗传变异。

  • 全局搜索能力:遗传算法采用群体方式进行搜索,能够有效地探索整个搜索空间,避免陷入局部最优解。

并行性:遗传算法天然适合并行计算,因为每个个体的评估和选择过程相对独立


方法6:连续减半Successive Halving(连续减半)算法是一种高效的超参数优化方法,特别适用于大规模的参数搜索问题。daa3cafe-e5e5-11ef-9434-92fbcf53809c.pngSuccessive Halving是一种迭代选择过程,它通过逐步减少候选解的数量并增加剩余候选解的资源分配来优化超参数。这种方法类似于“锦标赛”或“达尔文进化”,其中表现不佳的候选解会被淘汰,而表现较好的候选解则获得更多的资源以进行进一步的评估。

fromsklearn.datasetsimportload_iris
fromsklearn.ensembleimportRandomForestClassifier
fromsklearn.experimentalimportenable_halving_search_cv #noqa
fromsklearn.model_selectionimportHalvingGridSearchCV
X,y=load_iris(return_X_y=True)
clf=RandomForestClassifier(random_state=0)
param_grid={"max_depth":[3,None],
"min_samples_split":[5,10]}
search=HalvingGridSearchCV(clf,param_grid,resource='n_estimators',
max_resources=10,
random_state=0).fit(X,y)
search.best_params_


方法7:大模型思维链在超参数优化中,LLMs可以被用来推荐一组超参数进行评估。在接收到这些超参数后,根据提议的配置训练模型,并记录最终的指标(例如,验证损失)。然后,再次询问LLM以获取下一组超参数。这个过程是迭代的,直到耗尽搜索预算。dab5a54e-e5e5-11ef-9434-92fbcf53809c.png

LLMs在进行超参数优化时,可以利用链式思考推理,这意味着它们可以生成解释其推荐的理由。这种推理能力可以帮助理解模型为何推荐特定的超参数,并提供更深入的洞察。

dad1396c-e5e5-11ef-9434-92fbcf53809c.pngdb0480e2-e5e5-11ef-9434-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1813

    文章

    49752

    浏览量

    261624
  • 模型
    +关注

    关注

    1

    文章

    3649

    浏览量

    51719
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136236
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言链表知识点(2)

    C语言链表知识点(2)
    发表于 08-22 10:38 539次阅读
    C语言链表<b class='flag-5'>知识点</b>(2)

    C语言程序小知识点总结

    C语言总结(stm32嵌入式开发)文章目录C语言总结(stm32嵌入式开发)c程序小知识点总结1.静态变量static与外部变量extern的使用2.函数封装后返回值的方法3.软件寄存器的封装4.
    发表于 11-05 07:45

    计算机组成原理考研知识点归纳

    计算机组成原理考研知识点归纳 写在前面的话:理科知识重在于理解知识点本身,对于每一个知识点,大家都有自己理解的方式。这篇
    发表于 04-13 14:06 1990次阅读

    模电主要知识点及计算方法

    模电主要知识点及计算方法,适合模电初学者阅读学习
    发表于 12-14 17:13 95次下载

    高一数学知识点总结

    高一数学知识点总结高一数学知识点总结高一数学知识点总结
    发表于 02-23 15:27 0次下载

    高二数学知识点总结

    高二数学知识点总结高二数学知识点总结高二数学知识点总结
    发表于 02-23 15:27 0次下载

    SI、PI、EMC、RF知识点

    SI、PI、EMC、RF知识点
    发表于 01-14 02:53 17次下载

    PWM知识点详解

    PWM知识点
    发表于 03-16 08:00 44次下载

    嵌入式知识点总结

    嵌入式知识点总结(arm嵌入式开发led过程)-嵌入式知识点总结                    
    发表于 07-30 14:20 23次下载
    嵌入式<b class='flag-5'>知识点</b>总结

    电力基础知识点合集

    电力基础知识点合集
    发表于 03-14 16:35 0次下载

    详解射频微波基础知识点

    详解射频微波基础知识点
    的头像 发表于 01-29 10:28 3155次阅读

    C语言最重要的知识点

    C语言知识点总结.doc
    发表于 02-16 16:37 9次下载

    数字电路知识点总结

    本文整理了数字电路课程中的相关基本的知识点和较为重要的知识点,用于求职的数电部分的知识准备,差缺补漏。
    的头像 发表于 05-30 15:07 6208次阅读
    数字电路<b class='flag-5'>知识点</b>总结

    滚珠螺杆的基本知识点

    滚珠螺杆的基本知识点
    的头像 发表于 07-07 17:40 2192次阅读
    滚珠螺杆的基本<b class='flag-5'>知识点</b>

    STM32 RTOS知识点

    电子发烧友网站提供《STM32 RTOS知识点.pdf》资料免费下载
    发表于 08-01 14:28 4次下载
    STM32 RTOS<b class='flag-5'>知识点</b>