文章目录

  • 1. 超参数优化概述
  • 2. 网格搜索
  • 3. 随机搜索
  • 4. 贝叶斯优化
  • 5. 动态资源分配
  • 6. 神经架构搜索
  • 6. AutoML

1. 超参数优化概述

在神经网络中,除了可学习的参数之外,还存在很多超参数。这些超参数对网络性能的影响也很大,不同的机器学习任务往往需要不同的超参数。常见的超参数有以下三类:

  1. 网络结构,包括神经元之间的连接关系、层数、每层的神经元数量、激活函数的类型等;
  2. 优化参数,包括优化方法、学习率、小批量的样本数量等;
  3. 正则化系数。

超参数优化主要存在两方面的困难

  1. 超参数优化是一个组合优化问题,无法像一般参数那样通过梯度下降方法来优化,也没有一种通用有效的优化方法;
  2. 评估一组超参数配置的时间代价非常高,从而导致一些优化方法(比如演化算法)在超参数优化中难以应用。

对于超参数的配置,比较简单的方法有网格搜索、随机搜索、贝叶斯优化、动态资源分配和神经架构搜索。

2. 网格搜索

网格搜索是一种通过尝试所有超参数的组合来寻址合适一组超参数配置的方法。假设总共有 K K K 个超参数,第 n n n 个超参数的可以取 m n m_n mn​ 个值.那么总共的配置组合数量为 m 1 × m 2 × ⋯ × m K m_1 × m_2 × ⋯ × m_K m1​×m2​×⋯×mK​。如果超参数是连续的,可以将超参数离散化,选择几个“经验”值。比如学习率 α \alpha α,我们可以设置
α ∈ { 0.01 , 0.1 , 0.5 , 1.0 } \alpha \in \{0.01, 0.1,0.5,1.0 \} α∈{0.01,0.1,0.5,1.0}一般而言,对于连续的超参数,我们不能按等间隔的方式进行离散化,需要根据超参数自身的特点进行离散化。

网格搜索根据这些超参数的不同组合分别训练一个模型,然后测试这些模型在开发集上的性能,选取一组性能最好的配置。

3. 随机搜索

不同超参数对模型性能的影响有很大差异。有些超参数(比如正则化系数)对模型性能的影响有限,而另一些超参数(比如学习率)对模型性能影响比较大。在这种情况下,采用网格搜索会在不重要的超参数上进行不必要的尝试。一种在实践中比较有效的改进方法是对超参数进行随机组合,然后选取一个性能最好的配置,这就是随机搜索。随机搜索在实践中更容易实现,一般会比网格搜索更加有效。

网格搜索和随机搜索都没有利用不同超参数组合之间的相关性,即如果模型的超参数组合比较类似,其模型性能也是比较接近的。因此这两种搜索方式一般都比较低效。

4. 贝叶斯优化

贝叶斯优化是一种自适应的超参数优化方法,根据当前已经试验的超参数组合,来预测下一个可能带来最大收益的组合。

一种比较常用的贝叶斯优化方法为时序模型优化。假设超参数优化的函数 f ( x ) f(x) f(x) 服从高
斯过程,则 p ( f ( x ) ∣ x ) p(f(x)|x) p(f(x)∣x) 为一个正态分布。贝叶斯优化过程是根据已有的 N N N 组试验结果 H = { x n , y n } n = 1 N H=\{ x_n,y_n \}_{n=1}^N H={xn​,yn​}n=1N​(其中 y n y_n yn​ 是 f ( x n ) f(x_n) f(xn​) 的观测值)来建模高斯过程,并计算 f ( x ) f(x) f(x) 的后验分布 p g p ( f ( x ) ∣ x , H ) p_{gp}{(f(x)|x,H)} pgp​(f(x)∣x,H)。

为了使得 p g p ( f ( x ) ∣ x , H ) p_{gp}{(f(x)|x,H)} pgp​(f(x)∣x,H) 更加接近其真实分布,就需要对样本空间进行足够多的采样。但是超参数优化中每一个样本的生成成本很高,需要用尽可能少的样本来使得 p θ ( f ( x ) ∣ x , H ) p_{\theta}(f(x)|x,H) pθ​(f(x)∣x,H) 接近于真实分布.因此,需要通过定义一个收益函数 α ( x , H ) \alpha(x,H) α(x,H) 来判断一个样本是否能够给建模 p θ ( f ( x ) ∣ x , H ) p_{\theta}(f(x)|x,H) pθ​(f(x)∣x,H) 提供更多的收益。收益越大,其修正的高斯过程会越接近目标函数的真实分布。

收益函数的定义有很多种方式。一个常用的是期望改善(EI) 函数。假设 y ∗ = min ⁡ { y n , 1 ≤ n ≤ N } y^*=\min \{y_n,1 \le n \le N\} y∗=min{yn​,1≤n≤N} 是当前已有样本中的最优值,期望改善函数为
E I ( x , H ) = ∫ − ∞ + ∞ max ⁡ ( y ∗ − y , 0 ) p g p y ∣ x , H ) d y EI(x,H)=\int_{-\infty}^{+\infty} \max (y^*-y,0)p_{gp}{y|x,H)} dy EI(x,H)=∫−∞+∞​max(y∗−y,0)pgp​y∣x,H)dy期望改善是定义一个样本 x x x 在当前模型 p g p ( f ( x ) ∣ x , H ) p_{gp}{(f(x)|x,H)} pgp​(f(x)∣x,H)下, f ( x ) f(x) f(x) 超过最好结果 y ∗ y^* y∗ 的期望。除了期望改善函数之外,收益函数还有其他定义形式,比如改善概率,高斯过程置信上界等。

5. 动态资源分配

在超参数优化中,每组超参数配置的评估代价比较高。如果我们可以在较早的阶段就估计出一组配置的效果会比较差,那么我们就可以中止这组配置的评估,将更多的资源留给其他配置。

这个问题可以归结为多臂赌博机问题的一个泛化问题:最优臂问题,即在给定有限的机会次数下,如何玩这些赌博机并找到收益最大的臂。和多臂赌博机问题类似,最优臂问题也是在利用和探索之间找到最佳的平衡。由于目前神经网络的优化方法一般都采取随机梯度下降,因此我们可以通过一组超参数的学习曲线来预估这组超参数配置是否有希望得到比较好的结果。如果一组超参数配置的学习曲线不收敛或者收敛比较差,我们可以应用早期停止策略来中止当前的训练。

动态资源分配的关键是将有限的资源分配给更有可能带来收益的超参数组合。一种有效方法是逐次减半方法,将超参数优化看作一种非随机的最优臂问题。假设要尝试

网络优化(六)——超参数优化相关推荐

  1. 神经网络中的网络优化和正则化(三)之超参数优化

    转载请注明出处:https://thinkgamer.blog.csdn.net/article/details/101033047 博主微博:http://weibo.com/234654758 G ...

  2. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-优化函数,学习速率,反向传播,网络优化与超参数选择,Dropout 抑制过拟合概述-07

    多层感知器: 优化使用梯度下降算法 学习速率 学习速率选取原则 反向传播 SGD RMSprop Adam learning_rate=0.01 # -*- coding: utf-8 -*- # - ...

  3. 使用Optuna的XGBoost模型的高效超参数优化

    介绍 : (Introduction :) Hyperparameter optimization is the science of tuning or choosing the best set ...

  4. 机器学习模型的超参数优化用于分子性质预测

    在<预测化学分子的nlogP--基于sklearn, deepchem, DGL, Rdkit的图卷积网络模型>中简单介绍了sklearn模型的使用方法. 现在来介绍一下,如何对sklea ...

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

    作者 | deephub 责编 | 王晓曼 出品 | CSDN博客 头图 | CSDN付费下载自东方IC 引言 模型优化是机器学习算法实现中最困难的挑战之一.机器学习和深度学习理论的所有分支都致力于模 ...

  6. 前沿 | DeepMind改进超参数优化:遗传算法效果超越贝叶斯

    编译 | 林椿眄 从围棋.Atari游戏到图像识别.语言翻译领域,神经网络都已经取得了重大的突破.但是,经常被人忽略的是,神经网络的成功是在特定的应用情景下所取得,这些情景通常是在一系列研究的开始就确 ...

  7. 【机器学习】算法模型自动超参数优化方法

    什么是超参数? 学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter).还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(Hyper ...

  8. 机器学习模型定点化_机器学习模型的超参数优化

    引言 模型优化是机器学习算法实现中最困难的挑战之一.机器学习和深度学习理论的所有分支都致力于模型的优化. 机器学习中的超参数优化旨在寻找使得机器学习算法在验证数据集上表现性能最佳的超参数.超参数与一般 ...

  9. [机器学习]超参数优化算法-SuccessiveHalving与Hyperband

    一 传统优化算法 机器学习中模型性能的好坏往往与超参数(如batch size,filter size等)有密切的关系.最开始为了找到一个好的超参数,通常都是靠人工试错的方式找到"最优&qu ...

最新文章

  1. android DrawerLayout 改变系统默认的灰色
  2. 注册ETM钱包瓜分糖果 更有机会独享8888元现金奖励
  3. 防范最新勒索病毒--坏兔子病毒(伪造Adobe Flash Player更新)的方法
  4. 粒子群(PSO)算法简介
  5. OpenGL 实例化 Instancing
  6. dedecms怎么改php版本_玩转Termux:手把手教你在手机上安装php与nginx!
  7. 如何修改ant-input的高度_如何利用好Solidworks零件及装配体的多种配置方法?
  8. ((CTRL-CHAR,code 8)) : only regular white space is allowed between tokens
  9. 【codevs5709】01背包
  10. unity创建一个简单对象的开销_SpringBoot第一篇:创建一个简单的SpringBoot
  11. chrome session丢失_为什么还是由这么多人搞不懂Cookie、Session、Token?
  12. 2021年氯化工艺考试题库及氯化工艺考试试卷
  13. 爱签:如何在线签订电子合同
  14. 迅为STM32MP157开发板使用手册更新啦
  15. 如何实现查找附近的人
  16. android button 属性,两行显示数字,前面各有图像,Android_2_常用控件及常用属性
  17. Web大学生网页作业成品 基于HTML+CSS+JavaScript-----苹果商城Apple商城 8页 三级带视频
  18. Android-x86
  19. cordova 安装ssl证书_android webview https 证书
  20. 数据资产价值计算研究与实践

热门文章

  1. 选择文件,同时给文件重命名,改后缀名m3u8
  2. 人机界面在石油钻井工程中的应用:如何搭建钻井工程参数监测系统?
  3. (非)关系型数据库都有哪些
  4. win10开启Linux蓝屏,win10蓝屏重启进不去桌面解决方法。
  5. 常见web攻击(sql注入,xss攻击,csrf攻击)
  6. 利用Nodejs实现爬虫
  7. 你知道CAD绘图软件中的工具选项板是做什么的吗?
  8. 人生的诗·350~354节
  9. js 查错_淘宝双11超级星秀猫使用 Auto.js 脚本自动做任务领喵币
  10. Python 计算混淆矩阵,计算Kappa系数,总体精度