REDUCING THE SEARCH SPACE FOR HYPERPARAMETER OPTIMIZATION USING GROUP SPARSITY阅读笔记

REDUCING THE SEARCH SPACE FOR HYPERPARAMETER OPTIMIZATION USING GROUP SPARSITY

这篇文章做了啥

作者提出了一个新的方法,这个新的方法可以用在机器学习中的超参选择上面。实际上作者是对于harmonica算法的修改,harmonica算法是一个使用稀疏恢复的谱超参选择方法。特别地,作者展示了一个特殊的超参空间的编码可以使得自然的group-sparse recovery formulation,这能够使得当我们在和hyper band进行耦合的时候,可以使得能够在现有的超参优化方法上得到改善,比如successive halving 和random 搜索。在一些数据集上(比如cifar10)的实验结果表明作者的方法是有效的。

一些背景介绍

优化目标

ML很火,但是超参一直都是依赖于手工设计,HPO这个方向就是为了解决这个问题。

假设\(X\)表示超参的搜索空间(无论是numerical或者是categorical),给定一个ML alg和一系列超参,\(f\)表示从\(X\)映射到训练网络模型得到的test loss的映射函数,HPO的目标就是寻找这样一组超参数使得能够尽量达到全局最优

\[x^* = \arg\min_{x\in X} f(x) \]

并且尽量高效。

前人的工作

总的来讲,研究人员之前有采用过暴力搜索的方法,比如grid search,这种策略搜索的复杂度是随着参数数目增长呈现指数上升的。作为一个优化的方法,有人提出bayesian optimization。这种方法假设在cost function \(f(x)\)上有某个先验的分布,然后在给定一系列的超参的前提下,根据observation(或者是training loss的度量)更新posterior distribution。然后,一个acquisition function采样这些后验知识,然后再构建新的一系列的超参,如此迭代。

BO很流行,但也很不稳定,尤其是高维度的超参搜索。另外一种替代的方法是random search(RS),相对于grid search而言,RS不仅仅提供计算上的efficiency,同时很容易的实现并行。

multi-armed bandit (MAB)采用rs对随机选取的candidate points 分配不同的计算资源来进行加速。successive halving (SH)和hyperband 采用了MAB方法来进行随机搜索,在使用同等的budget的情况下,这种方法会比通过修剪早期的poorly performing 会选取更多的candidates。和BO(很难并行)不同的是,BO和Hyperband的整合能够同时实现引导选择和并行化的优势。

gradient只能优化连续的参数,作者不和他们进行对比。

当BO主导基于模型的方法时,一种称为Harmonica的最新技术提出了一种频谱方法,将稀疏恢复的思想应用于目标函数的布尔形式。

通过使用此方法,Harmonica通过快速查找有影响力的超参数,从而提供了减少超参数空间维数的独特优势,随后可以使用其他标准(搜索或优化)技术。

作者的贡献

作者的贡献主要是对于harmonica算法进行了一个扩展。虽然它成功演示了发现重要的分类特征(categorical feature),但我们着重于通过提出关于数值超参数值的新表示形式来寻找数值特征(numerical feature)。

该表示不仅减小了超参数空间的维数,而且还基于其结构知识对超参数进行了分组,以提高准确性和稳定性。

为了补充我们的算法,我们使用超参数分组验证了我们的数值表达式,以准确地检查其指导。可视化发现确实是全局最优解。作者仍然表明,通过结合决策理论方法的指导,他们的方法的鲁棒性会有提升。

技巧

以下描述了作者的选取的一些实验设置。

作者观察到三个对于任何HPO方法都有的期望,一个是并行性,一个是可扩展性,还有一个最后的表现。第一个作者使用hyperband,并行效果比较好。为了达到第二个和第三个标准,作者使用了harmonica trick,作者首先二值化超参空间,然后分解布尔化的函数\(f\)的傅里叶扩展。从比较小的数目的training loss(采样得到的)找到最有影响的超参数,这样将减少从压缩度量中解决组稀疏恢复问题的过程。

对于给定的计算预算,这会导致我们更好的总体测试错误。

数学模型和算法

作者显示他们的attention在离散的领域(假设连续的值已经被离散化)。让\(f:\{-1, 1\}^n\rarr\R\)表示被优化的loss函数。并且假设有\(k\)个不同类型的超参,作者分配\(n_i\) bits为\(i^{th}\)个超参类型,such that \(\sum_{i=1}^kn_i = n\). HPO的任务是搜索近似的超参数来满足

\[x^* = \arg\min_{x\in\{-1,1\}^n}f(x) \]

我对上述公式的理解是,假设有两个参数,则,第一个参数分为两个区间,第二个参数分为三个区间,则总共的的\(n\)为5,所以这里的n并不是有多少个参数的意思,而是区间划分成了几块,一共有几个超参数累加在一起的结果

PGSR-HB

polynomial group-sparse recovery within hyperband(PGSR-HB)。这是一种新的HPO搜索算法,能够减少超参的搜索空间。同时作者使用hyperband(一种在均匀随机采样的超参数配置中实现探索与开发之间的平衡),的multi-armed bandit method, 与一组稀疏版本的多项式稀疏恢复(Polynomial Sparse Recovery)相结合,后者是基于频谱分解的HPO Harmonica方法的主要组成部分。算法1显示了PGSR-HB的伪代码。

image-20200810204407122

PGSR-HB采用了hyperband的决策理论方法,但是有一点额外的,通过从不同的resources追踪所有的loss的历史而得到的feature。hyperband包含了子程序successive halving,动态减半算法(看对应的博客,之前松江介绍过)

PGSR sampling

PGSR-HB收集函数\(f\)的输出,PGSR采样子程序使用从稀疏恢复减少搜索空间的trick,来恢复布尔化的函数\(f\)的傅里叶基的系数。在作者讨论PGSR sampling如何工作,以及,和使用方法20中的harmonica多项式稀疏恢复对比的时候,作者先对布尔函数的傅里叶分析做了一些定义。

假设函数\(f\) defined from \(\{-1, 1\}^n\) to \(\R\), anysubset of indices \(S\) (\(S \subset [n]\))对应的傅里叶基可以定义为

\[\mathcal{X_s(x)} = \prod_{i\in S} x_i \]

其中\(x_i\)是输入的vector的第\(i\)个元素。然后函数\(f\)可以唯一的表示为一系列的实多线性多项式基(或者是傅里叶基)的序列:

\[f(x) = \sum_{S\subset[n]} \hat{f}(S)\mathcal{X}_s(x) \]

其中

\[\hat{f}(S) =\mathbb{E}_{x\in \{-1, 1\}^n}[f(x)\mathcal{X}_s(x)] \]

其中期望是从在n维的超cube的nodes的均匀分布得到。

原始harmonica并没有解决如何离散化连续的超参数,我们引入了一个简单的数学表达式,可以有效地作者引起\(f\)的傅立叶表示中的额外稀疏性。

\(x\)是通过函数\(g\)映射到基数为\(2^m\)的整数集的m位二进制数,而y是通过函数\(h\)映射到基数为\(2^n\)的整数集的n位二进制数,它们在(0,1]中均匀地按照函数\(f\) 被分隔。然后作者对于所有的k个种类以一种log-linear的形式表示\(i^{th}\)数值超参\(hp_i\), 如下:

\[hp_{i} = 10^{g(x)}\cdot h(y) \]

作者实验结果部分表明,这种简单的非线性bining表示会在函数\(g\)上induces稀疏性,这样会得到幅度值的阶次。因为PSGR会返回相对于函数\(g\)的特征,所以这种新的表现形式会减少超参的搜索空间。harmonica中的PSR会使用lasso恢复布尔函数,一个intuitive extension(从上面的log-linear 表示)是使用group lasso替代sparse recovery。alg1的23行有这个,因为我们将他们基于 超参种类的\(g\) and \(h\) 进行分组。

\(y\in \R^m\)为一个观测到的vector,让超参分为m+n个group(分别和函数g和函数h对应),让\(\Psi^l\)表示为下面矩阵的子矩阵

image

其中它的列是和\(l^{th}\)的group是匹配的。相似地,\(\alpha^l\)是对应submatric \(\Psi^l\) 的权重vector, \(p^l\)\(\alpha^l\)的长度。为了通过超参数结构构造子矩阵,这些子矩阵是在其列上作为傅立叶基的集合,令有一系列的如上定义的groups \(G = \{g_1, ..., g_m, h_1, ...h_n\}\)。如果有在\(G\)中有k个可能的group结合,以至于一个d维度的傅里叶基存在,我们则使用公式3可以推导k个子矩阵\(\Psi^1, ..., \Psi^k\).然后这个问题就和凸优化问题 group lasso等价,则可以表示为如下方程

image

最后,这算法需要输入 \(\rho\), 其中\(\rho\)表示重置概率参数,它表示从原始的缩减的超参空间生成的随机样本的重置概率。这个参数可以在不同的PGSR阶段防止gather有偏的观察,因为在SH后半阶段有充足的计算资源的情况下很容易出现这种情况。

PGSR-HB和harmonica的区别

标准的harmonica方法是在搜索开始之前,在均匀分布下的采样得到的度量,来使用PSR(the sparse recovery through \(l_1\) penalty 或者是标准的lasso)恢复函数\(f\)

harmonica在搜索算法开始之前,需要人工的去选择随机采样measurements的数目,以及它的资源(训练epoch数据)。

测量的可靠性,尤其是在深度学习中,很大程度上依赖于对每一个sample point上分配资源的多少。在恢复傅里叶系数上投入很大的资源能够保证lasso回归的可靠性,但是budget一定的话,这样并不高效。

然而,用比较少的资源收集测量不会让PSR为outer 搜索算法提供一个正确的指导。我们也在其他惩罚项上做了实验,而不仅仅是L1, 比如,Tikhonov regularizaiton...来阻止模型过拟合。然而终究是学得慢,而且有误导作用。

因为PGSR-HB 汇集了所有函数的输出,从cheap resource和most expensive resource。PGSR-HB消除了harmnoica设定显示的样本数目和训练epoch数目的必要性。

原始的Harmonica在寻找categorical超参上很有用,比如bn层是否有必要,或者是优化的方法,但是在寻找lr或者是weight decay则比较有限制。PGSR-HB则使用log-linear 的表示形式来获得order-of-magnitude 以及公式2,7和group lasso 公式2.8的细节,克服了这种限制。

实验部分

image

加入公式2.7,会改善稀疏性,来减少搜索空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 支持向量机非线性回归通用MATLAB程序解析 #### 一、概述 本文将详细介绍一个基于MATLAB的支持向量机(SVM)非线性回归的通用程序。该程序采用支持向量机方法来实现数据的非线性回归,并通过不同的核函数设置来适应不同类型的数据分布。此外,该程序还提供了数据预处理的方法,使得用户能够更加方便地应用此程序解决实际问题。 #### 二、核心功能与原理 ##### 1. 支持向量机(SVM) 支持向量机是一种监督学习模型,主要用于分类和回归分析。对于非线性回归任务,SVM通过引入核技巧(kernel trick)将原始低维空间中的非线性问题转换为高维空间中的线性问题,从而实现有效的非线性建模。 ##### 2. 核函数 核函数的选择直接影响到模型的性能。本程序内置了三种常用的核函数: - **线性核函数**:`K(x, y) = x'y` - **多项式核函数**:`K(x, y) = (x'y + 1)^d` - **径向基函数(RBF)**:`K(x, y) = exp(-γ|x - y|^2)` 其中RBF核函数被广泛应用于非线性问题中,因为它可以处理非常复杂的非线性关系。本程序默认使用的是RBF核函数,参数`D`用于控制高斯核函数的宽度。 ##### 3. 数据预处理 虽然程序本身没有直接涉及数据预处理的过程,但在实际应用中,对数据进行适当的预处理是非常重要的。常见的预处理步骤包括归一化、缺失值处理等。 ##### 4. 模型参数 - **Epsilon**: ε-insensitive loss function的ε值,控制回归带宽。 - **C**: 松弛变量的惩罚系数,控制模型复杂度与过拟合的风险之间的平衡。 #### 三、程序实现细节 ##### 1. 函数输入与输出 - **输入**: - `X`: 输入特征矩阵,维度为(n, l),其中n是特征数量,l是样本数量。 - `Y`: 目标值向量,长度为l。 - `Epsilon`: 回归带宽。 - `C`: 松弛变量的惩罚系数。 - `D`: RBF核函数的参数。 - **输出**: - `Alpha1`: 正的拉格朗日乘子向量。 - `Alpha2`: 负的拉格朗日乘子向量。 - `Alpha`: 拉格朗日乘子向量。 - `Flag`: 标记向量,表示每个样本的类型。 - `B`: 偏置项。 ##### 2. 核心代码解析 程序首先计算所有样本间的核矩阵`K`,然后构建二次规划问题并求解得到拉格朗日乘子向量。根据拉格朗日乘子的值确定支持向量,并计算偏置项`B`。 - **核矩阵计算**:采用RBF核函数,通过`exp(-(sum((xi-xj).^2)/D))`计算任意两个样本之间的相似度。 - **二次规划**:构建目标函数和约束条件,使用`quadprog`函数求解最小化问题。 - **支持向量识别**:根据拉格朗日乘子的大小判断每个样本是否为支持向量,并据此计算偏置项`B`。 #### 四、程序扩展与优化 - **多核函数支持**:可以通过增加更多的核函数选项,提高程序的灵活性。 - **自动调参**:实现参数自动选择的功能,例如通过交叉验证选择最优的`Epsilon`和`C`值。 - **并行计算**:利用MATLAB的并行计算工具箱加速计算过程,特别是当样本量很大时。 #### 五、应用场景 该程序适用于需要进行非线性回归预测的场景,如经济预测、天气预报等领域。通过调整核函数和参数,可以有效应对各种类型的非线性问题。 ### 总结 本程序提供了一个支持向量机非线性回归的完整实现框架,通过灵活的核函数设置和参数调整,能够有效地处理非线性问题。对于需要进行回归预测的应用场景,这是一个非常实用且强大的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值