超参数调优的方法

  • 概述
  • 网格搜索
  • 随机搜索
  • 贝叶斯优化算法

概述

对于很多算法工程师来说, 超参数调优是件非常头疼的事。除了根据经验设定所谓的“合 理值”之外, 一般很难找到合理的方法去寻找超参数的最优取值。 而与此同时,超参数对于模型效果的影响又至关重要。 高没有一些可行的办法去进行超参数的调优呢?

为了进行超参数调优,我们一般会采用网格搜索、 随机搜索、贝叶斯优化等算法。 在具体介绍算法之前,需要明确超参数搜索算法一般包括哪几个要素。一是目标函数,即算法需要最大化/最小化的目标;二是搜索范围,一般通过上限和下限来确定 ; 三是算法的其他参数, 如搜索步长。

网格搜索

网格搜索可能是最简单、应用最广泛的超参数搜索算法, 色通过查找搜索范围内的所有的点来确定最优值。 如果采用较大的搜索范围以及较小的步长,网恪搜索高很大概率找到全局最优值。 然而,这种搜索方案十分消耗计算资源和时间,特别是需要调优的超参数比较多的时候。因此, 在实际应用中,网格搜索法一般会先使用较广的搜索范围和较大的步长,来寻找全局最优值可能的位置;然后会逐渐缩小搜索范围和步长,来寻找更精确的最优值。 这种操作方案可以降低所需的时间和计算量, 但由于目标函数一般是非凸的, 所以很可能会错过全局最优值。

随机搜索

随机搜索的思想与网格搜索比较相似 , 只是不再测试上界和下界之间的所有值,而是在搜索范围中随机选取样本点。 它的理论依据是,如果样本点集足够大,那么通过随机采样也能大概率地找到全局最优值, 或其近似值。随机搜索一般会比网格搜索要快一些,但是和网格搜索的快速版一样,它的结果也是没法保证的。

贝叶斯优化算法

贝叶斯优化算法在寻找最优值参数时,采用了与网格搜索、随机搜索完全不同的方法。网格搜索和随机搜索在测试一个新点时,会忽略前一 个点的信息,而贝叶斯优化算法则充分利用了之前的信息。贝叶斯优化算法通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数。具体来说,它学习目标函数形状的方法是,首先根据先验分布,假设 一个搜集函数,然后,每一次使用新的采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。对于贝叶斯优化算法,有一个需要注意的地方,一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。为了弥补这个缺陷,贝叶斯优化算法会在探索和利用之 间找到一个平衡点,“探索”就是在还未取样的区域获取采样点;而“利用”则是根据后验分布在最可能出现全局最值的区域进行采样。

机器学习之超参数调优——超参数调优的方法相关推荐

  1. 单个GPU无法训练GPT-3,但有了这个,你能调优超参数了

    视学算法报道 编辑:陈萍.小舟 模型越大,超参数(HP)调优成本越高,微软联合 OpenAI 提出 HP 调优新范式,单个 GPU 上就可以调优 GPT-3 超参数. 伟大的科学成就不能仅靠反复试验取 ...

  2. 机器学习、超参数、最优超参数、网格搜索、随机搜索、贝叶斯优化、Google Vizier、Adviser

    机器学习.超参数.最优超参数.网格搜索.随机搜索.贝叶斯优化.Google Vizier.Adviser 最优超参数 选择超参数的问题在于,没有放之四海而皆准的超参数. 因此,对于每个新数据集,我们必 ...

  3. Python使用模拟退火(Simulated Annealing)算法构建优化器获取机器学习模型最优超参数组合(hyperparameter)实战+代码

    Python使用模拟退火(Simulated Annealing)算法构建优化器获取机器学习模型最优超参数组合(hyperparameter)实战+代码 目录

  4. python svm超参数_grid search 超参数寻优

    http://scikit-learn.org/stable/modules/grid_search.html 1. 超参数寻优方法 gridsearchCV 和  RandomizedSearchC ...

  5. python中算法(sklearn)的最优超参数寻优:skopt贝叶斯搜索

    python中算法(sklearn)的最优超参数寻优:skopt贝叶斯搜索 Jeff Dean在ICML 2019上进行了有关AutoML的演讲,并将自动化分为4个级别 手动构造预测变量,不引入学习的 ...

  6. sklearn学习-SVM例程总结3(网格搜索+交叉验证——寻找最优超参数)

    网格搜索+交叉验证--寻找最优超参数 1548962898@qq.com 连续三天写了三篇博客,主要是为了尽快了解机器学习中算法以外的重要知识,这些知识可以迁移到每一个算法中,或许说,这些知识是学习并 ...

  7. 机器学习填坑:你知道模型参数和超参数之间的区别吗?

    翻译 | AI科技大本营(rgznai100) 参与 | 姜沂,焦燕 导语 机器学习中的模型参数和模型超参数在作用.来源等方面都有所不同,而模型超参数常被称为模型参数,这样,很容易对初学者造成混淆.本 ...

  8. R语言caret包构建xgboost模型实战:特征工程(连续数据离散化、因子化、无用特征删除)、配置模型参数(随机超参数寻优、10折交叉验证)并训练模型

    R语言caret包构建xgboost模型实战:特征工程(连续数据离散化.因子化.无用特征删除).配置模型参数(随机超参数寻优.10折交叉验证)并训练模型 目录

  9. 机器学习中模型参数和模型超参数分别是什么?有什么区别?

    机器学习中模型参数和模型超参数分别是什么?有什么区别? 目录 机器学习中模型参数和模型超参数分别是什么?有什么区别?

  10. 神经网络技巧篇之寻找最优超参数

    在神经网络中,除了权重和偏置等参数外,超参数也是一个很常见且重要的参数,这里的超参数是指,比如各层的神经元数量.batch大小.参数更新时的学习率或权值衰减等,如果这些超参数没有设置一个合适的值,模型 ...

最新文章

  1. 强化学习之原理详解、算法流程及Python代码
  2. 大数据凉了?No,流式计算浪潮才刚刚开始!
  3. PMCAFF微课堂 | 奇酷运营总监类类教你如何利用金字塔模型提高用户忠诚度
  4. Linux下部署Kubernetes+Kubesphere(一)Kubernetes基础
  5. Spring 注入集合
  6. Spicy Spring:动态创建自己的BeanDefinition
  7. 栈与队列在SGI STL的底层实现
  8. bugku 杂项 就五层你能解开吗_长春老旧小区加装电梯,你家符合条件吗?_媒体_澎湃新闻...
  9. PHP有表单和js交互乱码问题,js 和 php交互问题
  10. Quality Assurance (QA)
  11. Linux C语言连接MySQL 增删改查操作
  12. 【Kafka】Kafka WARN Property ssl.keystore.location is not valid (kafka.utils.VerifiableProperties)
  13. NSString 的常用方法
  14. vue + ElementUI如何动态删除表格当前行内容
  15. 青春互撩——详解基于Socket通信的聊天软件开发(附项目源码)
  16. html背景半透明 字不变,css实现背景半透明文字不透明的效果示例
  17. 利用OPENCV为android开发畸变校正的JNI库
  18. VUE二级/多级路由配置方式(嵌套路由)
  19. pinbox: 我用过最好的收藏工具
  20. win8 性能测试软件,Win10/Win8.1/Win7全方位性能评测大揭秘(3):应用性能

热门文章

  1. .NET应用迁移到.NET Core--调查案例
  2. java多线程同时运行_Java实现的两个线程同时运行案例
  3. 一名全栈工程师的必备“百宝箱”
  4. 【数据库原理及应用】经典题库附答案(14章全)——第十章:数据库完整性
  5. Android之封装倒计时页面
  6. Spring+EhCache缓存实例(详细讲解+源码下载)
  7. nginx 修改配置文件使之支持pathinfo,且隐藏index.php
  8. 表单数据自动录入_Excel总表录入、分表自动更新,只要数据透视表和一个快捷键就行...
  9. java获取tomcat目录结构_tomcat目录结构简介_动力节点Java学院整理
  10. 抽走超大桌布之后保持桌面物体不掉,需要多快的速度?