精华内容
下载资源
问答
  • 参数优化算法综述

    万次阅读 多人点赞 2019-03-11 11:36:58
    基于顺序模型的全局优化(SMBO)、高斯过程方法(GP)、树状结构Parzen估计方法(TPE)、随机搜索DBN等

    Algorithms for Hyper-Parameter Optimization

    原文:http://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf

    作者:

    1. James Bergstra
      哈佛大学罗兰研究所
    2. R´emi Bardenet
      南巴黎大学计算机科学研究实验室
    3. Yoshua Bengio
      蒙特利尔大学计算机科学与运筹学系
    4. Bal´azs K´egl
      南巴黎大学直线加速器实验室

    专有名词:

    1. DBN
      Deep Belief Network,深度置信网络。
      详见:大话深度信念网络(DBN) https://my.oschina.net/u/876354/blog/1626639
    2. SMBO
      Sequential Model-Based Global Optimization,基于顺序模型的全局优化。
    3. EI
      Expected Improvement,预期改进。
    4. GP
      Gaussian Process,高斯过程。
    5. EDA
      Estimation of Distribution Algorithms,分布估计算法。
    6. CMA-ES
      Covariance Matrix Adaptation - Evolution Strategy,协方差矩阵适应进化策略。
    7. TPE
      Tree-structured Parzen Estimator Approach,树状结构Parzen估计方法(TPE)
    8. PCA
      Principal Component Analysis,主成分分析方法

    摘要

    图像分类基准的现有技术的若干最新进展来自于现有技术的更好配置而不是特征学习的新方法。一般来说,超参数优化的工作一直由人工完成,因为它们在只有少数试验的环境中非常有效。目前,计算机集群和GPU处理器可以运行更多的试验,我们发现算法方法可以找到更好的结果。我们在训练神经网络和深度置信网络(DBN)的任务中提出超参数优化结果。我们使用随机搜索和基于预期改进标准的两种新的贪婪顺序方法来优化超参数。随机搜索对于学习某些数据集的神经网络已足够有效,但是我们发现它对于训练深度置信网络是不可靠的。顺序算法应用于[1]中最困难的深度置信网络学习问题,并且发现比先前报道的最佳结果明显更好的结果。该工作提供了用于制作响应面模型P(yx)P(y|x)的新技术,其中许多超参数分配(x)(x)的元素与其他元素给定的特定值是不相关的。

    1 介绍

    诸如深度置信网络(DBN)[2],多层降噪自动编码机[3],卷积网络[4]以及基于复杂特征提取技术的分类器等模型具有10个到大约50个超参数,具体取决于实验者如何选择来对模型进行参数化,以及实验者在合理的默认值下选择多少超参数。调整这些模型的难度使得公布的结果难以复现和扩展,甚至使这些方法的原始研究更像是一门艺术,而不是一门科学。

    最近的结果如[5],[6]和[7]表明,大型和多层模型中的超参数优化直接阻碍了科学进步。这些工作通过简单算法中的更协调的超参数优化而不是通过创新建模或机器学习策略,在图像分类问题上具有先进的性能。从如[5]的结果中得出特征学习是无用的结论显然是错误的。相反,超参数优化应该被视为学习过程中有条理的外层循环。学习算法,像a functional from data to classifier(以分类问题为例),包括预算选择在超参数探索上花费多少CPU周期,以及花费多少CPU周期来评估每个超参数选择(即通过调整常规参数)。[5]和[7]的结果表明,对于诸如大型计算机集群和GPU的当代硬件,CPU周期的最佳分配包括比机器学习文献典型来得更多的超参数探索。

    超参数优化是在图结构配置空间上优化损失函数的问题。在这项工作中,我们将自己限定在树状结构配置空间。树状结构的配置空间意义在于一些叶变量(例如DBN第二层中隐藏层的数量)只有在节点变量(例如离散选择了多少层)取特定值时才能很好地定义值。超参数优化算法不仅必须优化离散、有序和连续的变量,而且必须同时选择变量哪一个变量来优化。

    在该工作中,我们通过一种生成过程来定义配置空间,以绘制有效样本。随机搜索是从该过程中绘制超参数分配并对其进行评估的算法。优化算法通过识别已经绘制的超参数来工作,并且基于损失函数在其他点处的值看起来很有希望。本文做出了两点贡献:1)随机搜索与[1]中DBN的手动优化是可竞争的。2)自动顺序优化优于手动和随机搜索。

    第2节介绍基于顺序模型的优化和预期的改进标准。第3节介绍了一种基于高斯过程的超参数优化算法。第4节介绍了基于自适应Parzen窗的又一种方法。第5节描述了DBN超参数优化的问题,并显示了随机搜索的效率。第6节显示了根据随机搜索对两个最难的数据集进行顺序优化的效率。本文在第7节和第8节讨论了结果和总结。

    2 基于顺序模型的全局优化(SMBO)

    基于顺序模型的全局优化(SMBO)算法已被用于许多应用,其适应度函数的评估代价很高[8,9]。在真实的适应度函数 f:χRf:\chi \to \mathbb{R} 评估成本高的应用中,基于模型的算法近似评估 ff 来得更便宜。通常,SMBO算法中的内循环是该代理的数值优化,或代理的某些变换。最大化代理(或其转换)的点 xx^{*} 是原本应评估的真实函数 ff 的替代方案。这种主动学习的类似算法模板概括如图1。
    图1 通用基于顺序模型的全局优化伪代码

    图1 通用基于顺序模型的全局优化伪代码

    SMBO算法的不同之处在于它们在给定 ff 的模型(或代理)下优化以获得 xx^{*} 的标准,和在于它们的模型 ff 通过观察历史 H\mathcal{H} 。这项工作中的算法优化了预期改进(EI)的标准[10]。有其他已被提出的标准,例如改进概率和预期改进[10],最小化最小化器的条件熵[11],以及[12]中描述的基于强盗的标准。我们选择在我们的工作中使用EI标准,因为它是直观的,并且已经证明在各种环境中都能很好地工作。我们对未来工作的改进标准进行系统探索。预期的改进是在 f:χRNf:\chi \to \mathbb{R}^{N} 的某个模型 MM 下的期望 f(x)f(x) 将超过(负)某个阈值yy^{*}

    EIy(x):=max(yy,0)pM(yx)dy\mathrm{EI}_{y^{*}}(x):=\int_{-\infty}^{\infty}\mathrm{max}(y^*-y,0)pM(y|x)dy

    这项工作的贡献是通过建模H\mathcal{H}: 一种分层高斯过程和树状结构Parzen估计,来近似 ff 的两种新策略。这些分别在第3节和第4节中进行描述。

    3 高斯过程方法(GP)

    在基于模型的优化文献中,高斯过程一直被认为是建模损失函数的好方法[13]。高斯过程(GPs,[14])是封闭的欠采样(原文closed under sampling)函数的先验,这意味着如果 ff 的先验分布被认为是具有均值0和核k的GP,则从 ff 的条件分布得知样本 H=(xi,f(xi))i=1n\mathcal{H}=(x_{i},f(xi))^{n}_{i=1} 的值也是GP,其均值和协方差函数可以通过分析推导出来。原则上可以使用具有通用平均函数的GP,但是对于我们的目的而言,仅考虑零均值过程更简单且充分。我们通过将函数值集中在所考虑的数据集中来实现。例如建模GP均值的线性趋势导致使用SMBO出现非探索区域中的非期望外推[15]。

    上面提到的封闭性,以及GP提供包含数据稀缺性影响的预测不确定性评估的事实,使得GP成为寻找候选 xx (图1步骤3)和拟合模型 MtM_{t} 的简炼方法(图1步骤6)。GP方法的每次迭代运行时间在 H\left|\mathcal{H}\right| 中立方地缩放并且在被优化的变量中线性地缩放,但是功能评估 f(x)f(x^*) 的花费通常甚至在该立方成本中占主导地位。

    3.1 使用GP优化EI

    我们用GP对 ff 进行建模,并将 yy^{*} 设置为观察 H:y=min{f(xi),1in}\mathcal{H}:y^{*}=\mathrm{min}\{f(x_{i}),1\le i \le n\} 后找到的最佳值。(1)中的模型 pMpM 是知道 H\mathcal{H} 的后验GP。(1)中的EI函数在平均函数接近或优于 yy^{*} 的区域和不确定性高的欠探索区域之间进行折衷。

    EI函数通常通过输入空间上的详尽网格搜索或更高维度的拉丁超立方搜索进行优化。然而,关于EI标准的一些地形信息可以从简单的计算得出[16]:1)它总是非负的并且在 D\mathcal{D} 的训练点处为零,2)它继承了核 kk 的平滑性,在实践中通常至少一次可微分,3)EI标准可能是高度多模态的,特别是随着训练点数量的增加。[16]的作者使用前面关于EI地形的评论来设计一种混合搜索的进化算法,特别是旨在优化EI,在EI评估中表现出优于对给定预算的穷举搜索。我们借用他们的方法更进一步。我们在输入空间的离散部分(分类和离散超参数)上保持了分布估计(EDA,[17])方法,其中我们根据二项分布对候选点进行采样,同时我们使用协方差矩阵适应进化策略(CMA-ES,[18])用于输入空间的剩余部分(连续超参数)。CMA-ES是一种用于连续域优化的最先进的无梯度进化算法,已被证明优于高斯搜索EDA。请注意,这种无梯度方法允许GP回归的不可微内核。我们不会像在[16]一样使用混合算法,而是从有机会的位置开始多次重启本地搜索。[16]建议使用的曲面细分在这里是禁止的,因为我们的任务通常意味着工作在10个以上的维度,因此我们在单纯的质点开始每个局部搜索,在训练点中随机选取顶点。

    最后,我们注意到所有超参数都与每个点无关。例如,仅具有一个隐藏层的DBN没有与第二层或第三层相关联的参数。因此,在超参数的整个空间上放置一个GP是不够的。我们选择以树状方式通过共同使用超参数分组,并在每个组上放置不同的独立GP。例如,对于DBN,这意味着将一个GP放在常见的超参数上,包括指示要考虑的条件组的分类参数,与三个层中的每一个对应的参数上的三个GP,以及一些1维GP非独立控制的超参数,如ZCA能量(DBN参数见表1)。

    4 树状结构Parzen估计方法(TPE)

    预计我们的超参数优化任务将意味着高维度和小适应度评估预算,现在我们转向SMBO算法的另一种建模策略和EI优化方案。然而基于高斯过程的方法直接模拟 p(yx)p(y|x) ,该策略模拟 p(xy)p(x|y)p(y)p(y)

    回顾一下介绍,配置空间 X\mathcal{X} 由图形结构的生成过程描述(例如,首先选择多个DBN层,然后为每个选择参数)。树形结构Parzen估计器(TPE)通过转换生成过程来模拟 p(xy)p(x|y) ,用非参数密度替换先前配置的分布。在实验部分中,我们将看到使用均匀,对数均匀,量化对数均匀和分类变量来描述配置空间。在这些情况下,TPE算法进行以下替换:均匀 \to 截断高斯混合 \to 对数均匀 \to 指数截断高斯混合,分类 \to 再加权分类。在非参数密度中使用不同的观察值 {x(1),...,x(k)}\{x^{(1)},...,x^{(k)}\} ,这些替换表示可以在配置空间 X\mathcal{X} 上产生各种密度的学习算法。TPE使用两个这样的密度定义 p(xy)p(x|y)

    p(xy)={(x)if y<yg(x)if yy, p(x|y) = \begin{cases} \ell(x) &\text{if } y \lt y^{*} \\ g(x) &\text{if } y \ge y^{*}, \end{cases}

    其中 (x)\ell(x) 是通过使用算法 {x(k)}\{x^{(k)}\} 观察形成的密度,使得相应的损失 f(x(i))f(x^{(i)}) 小于 yy^{*} ,并且 g(x)g(x) 是通过使用剩余观察值形成的密度。虽然基于GP的方法倾向于积极的 yy^{*} (通常小于观察到的最佳损失),但TPE算法取决于大于最佳观察到的 f(x)f(x)yy^{*} ,因此可以使用某些点来形成 (x)\ell(x) 。TPE算法选择 yy^{*} 作为观察到的 yy 值的一些分位数 γ\gamma ,因此 p(y<y)=γp(y\lt y^{*})=\gamma ,但不需要 p(y)p(y) 的特定模型。通过在 H\mathcal{H} 中维护观察到的变量的排序列表,TPE算法的每次迭代的运行时间可以在 H|\mathcal{H}| 中线性缩放并且在被优化的变量(维度)的数量中线性地缩放。

    4.1 优化TPE算法中的EI

    选择TPE算法中 p(x,y)p(x,y) 作为 p(y)p(xy)p(y)p(x|y) 的参数化以促进EI的优化。
    EIy(x)=y(yy)p(yx)dy=y(yy)p(xy)p(y)p(x) \mathrm{EI}_{y^{*}}(x)=\int_{-\infty}^{y^{*}}(y^{*}-y)p(y|x)dy=\int_{-\infty}^{y^{*}}(y^{*}-y)\frac{p(x|y)p(y)}{p(x)}
    通过构造γ=p(y<y)\gamma =p(y<y^{*})p(x)=Rp(xy)p(y)dy=γ(x)+(1γ)g(x)p\left( x \right) =\int_{\mathbb{R}}{p\left( x|y \right) p\left( y \right) dy=\gamma \ell \left( x \right) +\left( 1-\gamma \right) g\left( x \right)}

    因此,
    y(yy)p(xy)p(y)dy=(x)y(yy)p(y)dy=γy(x)(x)yp(y)dy\int_{-\infty}^{y^*}{\left( y^*-y \right) p\left( x|y \right) p\left( y \right) \text{d}y}=\ell \left( x \right) \int_{-\infty}^{y^*}{\left( y^*-y \right)}p\left( y \right) dy=\gamma y^*\ell \left( x \right) -\ell \left( x \right) \int_{-\infty}^{y^*}{p\left( y \right) dy}
    最后,
    EIy(x)=γy(x)(x)yp(y)dyγ(x)+(1γ)g(x)(γ+g(x)(x)(1γ))1EI_{y^*}\left( x \right) =\frac{\gamma y^*\ell \left( x \right) -\ell \left( x \right) \int_{-\infty}^{y^*}{p\left( y \right) dy}}{\gamma ^{\ell \left( x \right)}+\left( 1-\gamma \right) g\left( x \right)}\propto \left( \gamma +\frac{g\left( x \right)}{\ell \left( x \right)}\left( 1-\gamma \right) \right) ^{-1}
    最后一个表达式表明,为了最大化改进,我们希望在点 xx(x)\ell(x) 概率高同时 g(x)g(x) 概率低。 \ellgg 的树状结构形式使得根据 \ell 绘制许多候选者并且根据 g(x)/(x)g(x)/\ell(x) 来评估它们是容易的。在每次迭代中,算法返回具有最大EI的候选算法 xx^{*}

    4.2 Parzen Estimator的细节

    模型 (x)\ell(x)g(x)g(x) 是涉及离散值和连续值变量的分层过程。自适应Parzen估计器通过在 KK 观测值 B={x(1),...,x(k)}H\mathcal{B}=\{x^{(1)},...,x^{(k)}\} \subset\mathcal{H} 附近放置一个模型而在 X\mathcal{X} 上产生模型。每个连续超参数由一定间隔 (a,b)(a, b) 或高斯或对数均匀分布的均匀先验指定。TPE用以 x(i)Bx(i)\in\mathcal{B} 中的每一个为中心的高斯方法代替先验的等加权混合。每个高斯方法的标准差被设置为到左和右邻点距离中的较大者,但是会被调整到合理范围内。在均匀的情况下,点 aabb 被认为是潜在的邻点。对于离散变量,假设先验是 NN 个概率 pip_{i}的向量,后向量元素与 Npi+CiN_{p_{i}}+C_{i} 成比例,其中 CiC_{i} 计算 B\mathcal{B} 中选择 ii 的出现。对数均匀超参数在对数域中被视为均匀。

    表1:用于随机采样的DBN超参数分布。由“或”分隔的选项(如预处理(包括随机种子))的权重相等。符号 UU 表示均匀, N\mathcal{N} 表示高斯分布, log Ulog\ U 表示均匀分布在对数域中。CD(也称为CD-1)代表对比分歧,该算法用于初始化DBN的层参数。

    在这里插入图片描述

    5 随机搜索DBN中的超参数优化

    形式化超参数优化的一个简单但最新的步骤是使用随机搜索[5]。[19]表明随机搜索比网格搜索更有效地优化单层神经网络分类器的参数。在本节中,我们评估了DBN优化的随机搜索,与[1]中进行的顺序网格辅助手动搜索相比较。

    我们选择先前表1中列出的来定义DBN配置上的搜索空间。[1]中提供了数据集的细节,DBN模型以及基于CD的贪婪分层训练步骤。该先验对应于[1]的搜索空间,除了以下差异:(a)我们允许ZCA预处理[20],(b)我们允许每个层具有不同的大小,©我们允许对于每个层都有自己的CD训练参数,(d)我们允许将连续值数据视为CD算法中的伯努利均值(理论上更正确)或伯努利样本(更典型),以及(e)我们没有将实值超参数的可能值离散化。这些变化扩展了超参数搜索问题,同时将原始超参数搜索空间保持为扩展搜索空间的子集。

    该初步随机搜索的结果如图2所示。
    在这里插入图片描述
    图2:深度信念网络(DBN)的性能根据随机搜索。随机搜索用于探索多达32个超参数(参见表1)。使用网格搜索辅助手动搜索在类似域上进行的结果平均41次试验以绿色(1层DBN)和红色(3层DBN)给出。每个箱形图(对于 N=1,2,4...N=1,2,4...)显示当选择N个随机试验中的最佳模型时测试集性能的分布。 数据集“convex”和“mnist旋转背景图像”用于更彻底的超参数优化。

    也许令人惊讶的是,手动搜索的结果可以与几个数据集的32次随机试验可靠地匹配。在[21]中进一步探讨了此设置中随机搜索的效率。在随机搜索结果与人类表现相匹配的情况下,从图2中不清楚其原因是它是否有效地搜索了原始空间,或者它搜索了更容易找到良好性能的更大空间。但是随机搜索通过搜索更大的空间以某种方式作弊的反对意见是相反的——表1中列出的搜索空间是超参数优化问题的自然描述,并且[1]对该空间的限制可能是简化搜索问题,使其易于网格搜索辅助手动搜索。关键的是,这两种方法都在相同的数据集上训练DBN。

    图2中的结果表明,对于某些数据集,超参数优化更难。例如,在“MNIST旋转背景图像”数据集(MRBI)的情况下,随机抽样似乎相对较快地收敛到最大值(32个试验的实验中的最佳模型显示性能差异很小),但这个稳定水平低于手动搜索。在另一个数据集(convex)中,随机抽样程序超出了手动搜索的性能,但收敛到任何类型的平台都很慢。当选择32个模型中的最佳模型时,泛化存在相当大的差异。这种缓慢的收敛表明可能有更好的性能,但我们需要更有效地搜索配置空间才能找到它。本文的其余部分探讨了这两个数据集的超参数优化的顺序优化策略:convexMRBI

    6 在DBN中顺序搜索超参数优化

    我们通过与波士顿房价数据集上的随机抽样进行比较验证了第3.1节的GP方法,这是一个由13个标度输入变量和标量回归输出组成的506个点的回归任务。我们训练了一个具有10个超参数的多层感知器(MLP),包括学习率, 1\ell_{1}2\ell_{2} 惩罚,隐藏层的大小,迭代次数,是否应用PCA预处理,其能量是唯一的有条件的超参数[22]。我们的结果如图3所示。前30次迭代是使用随机抽样进行的,而从第30次开始,我们将随机样本与在更新历史上训练的GP方法区分开来。该实验重复了20次。尽管与维度相比点的数量特别少,但代理建模方法比随机点具有明显更好的点,这支持将SMBO方法应用于更雄心勃勃的任务和数据集。

    在这里插入图片描述
    图3:在时间30之后,GP优化波士顿房价回归任务中的MLP超参数。 到目前为止,每5次迭代发现的最佳最小值,与时间相关。 红色=GP,蓝色=随机。阴影区域=1-sigma误差条。

    在这里插入图片描述
    表2:每个搜索算法针对每个问题找到的最佳模型的测试集分类错误。每个搜索算法最多允许200次试验。手动搜索使用82个试验convex和27个试验MRBI

    将GP应用于优化DBN性能的问题,我们允许每个提议 xx^{*} 对CMA + ES算法进行3次随机重启,并且在拟合GP的长度尺度时允许最多500次迭代的共轭梯度方法。平方指数内核[14]用于每个节点。GP的CMA-ES部分使用惩罚方法处理边界,二项式采样部分本质上处理它。在 H\mathcal{H} 中用30个随机采样点初始化GP算法。在200次试验后,使用该GP预测点 xx^{*} 需要大约150秒。对于基于TPE的算法,我们选择了 γ=0.15\gamma=0.15 ,并且在每次迭代中从 (x)\ell(x) 中抽取的100个候选中的最佳选择为提议 xx^{*} 。在200次试验之后,使用该TPE算法预测点 xx^{*} 需要大约10秒。允许TPE在优化过程中超过用于随机采样的初始界限,而GP和随机搜索被限制在整个优化过程中保持在初始界限内。TPE算法用30个随机采样点进行初始化,GP算法也同样用这30个随机采样点播种。

    6.1 并行化顺序搜索

    GP和TPE方法实际上是异步运行的,以便利用多个计算节点并避免浪费时间等待试验评估完成。对于GP方法,使用所谓的恒定骗子(constant liar)方法:每次提出候选点 x{x^{*}} 时,临时分配等于训练集 D\mathcal{D} 内的 yy'的平均值的假适应性评估,直到评估完成为止。 并报告实际损失loss f(x)f(x^{*})。对于TPE方法,我们简单地忽略了最近提出的点,并依赖于来自 (x)\ell(x) 绘制的随机性来提供从一次迭代到下一次迭代的不同候选。并行化的结果是每个提议 xx^{*} 都基于较少的反馈。这使搜索效率降低,但在墙上时钟时间方面更快。

    无论是否在GTX 285,470,480或580上执行,每次试验的运行时间限制为1小时GPU计算。最慢和最快的机器之间的速度差异在理论上大约是两倍,但实际的计算效率还取决于机器的负载和问题的配置(不同卡的相对速度在不同超参数配置下是不同的)。通过GP和TPE算法对多达五个提案的并行评估,每个实验使用五个GPU花费大约24小时的待机时间。

    7 讨论

    每个算法构建的轨迹(H\mathcal{H})最多200步,如图4所示,并与随机搜索和[1]中进行的手动搜索进行了比较。

    在这里插入图片描述
    图4:基于高斯过程(GP)和基于图形模型(TPE)顺序优化算法的效率,用于在convex任务(左)和MRBI任务(右)上优化多达三层的DBN的验证集性能的任务。点是每个SMBO算法产生的轨迹 H\mathcal{H} 的元素。纯色线是在每个时间点之前找到的最佳试验的验证集准确度。TPE和GP算法都从其随机初始条件中取得了显著进步,并且大大优于手动和随机搜索方法。关于convex任务的最佳验证方法的95%置信区间在每个点的上方和下方延伸0.018,在MRBI任务上在每个点的上方和下方延伸0.021。实线黑线是领域专家使用网格搜索和手动搜索[1]的组合获得的测试集精度。虚线是从我们之前的分布(参见表1)中抽样的试验中发现的99.5%验证性能的分位数,分别根据两个数据集的457和361个随机试验估算。

    使用这些算法和其他算法找到的最佳模型的泛化分数列于表2中。在convex数据集(二分类)上,两种算法都收敛到13%误差的验证分数。总的来说,TPE的最佳模型有14.1%的误差,而GP的最佳模型有16.7%。TPE的最佳效果显着优于手动搜索(19%)和随机搜索200个试验(17%)。在MRBI数据集(十分类)上,随机搜索是表现最差的(50%误差),GP方法和手动搜索大致相关(47%误差),而TPE算法发现了新的最佳结果(44%误差))。特别是TPE算法找到的模型比以前在两个数据集上找到的模型都要好。GP和TPE算法的效率略低于手动搜索:GP和EI在80次试验中达到了与手动搜索相当的性能,[1]的手动搜索使用了82个convex试验和27个MRBI试验。

    TPE方法在这两个数据集中的表现优于GP方法有几种可能的原因。也许 p(xy)p(x|y) 的逆分解比高斯过程中的 p(yx)p(y|x) 更准确。或许,相反,TPE缺乏准确性引发的探索结果证明是一种很好的搜索启发式算法。也许GP方法本身的超参数没有设置为在DBN配置空间中正确地权衡利用和探索。需要更多的实证研究来检验这些假设。然而,至关重要的是,所有四个SMBO运行都匹配或超过了随机搜索和仔细的人工引导搜索,这些搜索目前是超参数优化的最先进方法。

    GP和TPE算法在这两种设置中都运行良好,但是这些算法需要一些明确的设置,实际上SMBO算法一般不会很好。顺序优化算法通过利用观察到的 (x,y)(x,y) 对中的结构来工作。对于 p(yx)p(y|x) 的错误选择,SMBO可能是任意不好的。如果它在 H\mathcal{H} 中提取仅导致局部最优的结构,则在发现具有明显好的 p(yx)p(y|x) 的全局最优时,也可能比随机采样慢。

    8 结论

    本文介绍了两种连续的超参数优化算法,并证明它们在涉及DBN的两个困难的超参数优化任务中满足或超过人的性能和蛮力随机搜索的性能。我们在搜索空间上放宽了标准约束(例如,所有层上的相等图层大小),并回退到32个变量(包括离散变量和连续变量)的更自然的超参数空间,其中许多变量有时不相关,具体取决于其他参数的值(例如层数)。在这个32维搜索问题中,这里介绍的TPE算法已经在这两个数据集上发现了新的最佳结果,这些结果明显优于之前认为的DBN。此外,GP和TPE算法是实用的:每个数据集的优化仅使用5个GPU处理器在24小时内完成。虽然我们的结果仅适用于DBN,但我们的方法非常通用,并且自然地扩展到任何超参数优化问题,其中超参数是从可测量的集合中提取的。

    我们希望我们的工作可以激励机器学习社区的研究人员将超参数优化策略视为所有学习算法中一个有趣且重要的组成部分。“DBN对convex任务的效果如何?”这个问题并不是一个完全具体的、经验上可回答的问题——超参数优化的不同方法会给出不同的答案。超参数优化的算法方法使机器学习结果更容易传播,再现和转移到其他域。我们在此提出的具体算法至少在某些情况下也能够找到比以前已知的更好的结果。最后,强大的超参数优化算法拓宽了可以实际研究的模型的范围;研究人员不需要将自己局限于一些易于手动调整的变量系统。

    本工作中提出的TPE算法以及并行评估基础架构可作为BSD许可的免费开源软件提供,该软件不仅可以在这项工作中重现结果,而且还可以促进这些和与其他超参数优化问题类似的算法。

    Hyperopt:https://github.com/jaberg/hyperopt

    鸣谢

    这项工作得到了加拿大国家科学与工程研究委员会,Compute Canada以及法国国家研究机构的ANR-2010-COSI-002资助。 DBN模型的GPU实现由Theano [23]提供。

    参考文献

    [1] H. Larochelle, D. Erhan, A. Courville, J. Bergstra, and Y. Bengio. An empirical evaluation of deep architectures on problems with many factors of variation. In ICML 2007, pages 473–480, 2007.
    [2] G. E. Hinton, S. Osindero, and Y. Teh. A fast learning algorithm for deep belief nets. Neural omputation, 18:1527–1554, 2006.
    [3] P. Vincent, H. Larochelle, I. Lajoie, Y. Bengio, and P. A. Manzagol. Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion. Machine Learning
    Research, 11:3371–3408, 2010.
    [4] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition.Proceedings of the IEEE, 86(11):2278–2324, November 1998.
    [5] Nicolas Pinto, David Doukhan, James J. DiCarlo, and David D. Cox. A high-throughput screening approach to discovering good forms of biologically inspired visual representation. PLoS Comput Biol, 5(11):e1000579, 11 2009.
    [6] A. Coates, H. Lee, and A. Ng. An analysis of single-layer networks in unsupervised feature learning.
    NIPS Deep Learning and Unsupervised Feature Learning Workshop, 2010.
    [7] A. Coates and A. Y. Ng. The importance of encoding versus training with sparse coding and vector quantization. In Proceedings of the Twenty-eighth International Conference on Machine Learning (ICML-11), 2010.
    [8] F. Hutter. Automated Configuration of Algorithms for Solving Hard Computational Problems. PhD thesis, University of British Columbia, 2009.
    [9] F. Hutter, H. Hoos, and K. Leyton-Brown. Sequential model-based optimization for general algorithm configuration. In LION-5, 2011. Extended version as UBC Tech report TR-2010-10.
    [10] D.R. Jones. A taxonomy of global optimization methods based on response surfaces. Journal of Global Optimization, 21:345–383, 2001.
    [11] J. Villemonteix, E. Vazquez, and E. Walter. An informational approach to the global optimization of
    expensive-to-evaluate functions. Journal of Global Optimization, 2006.
    [12] N. Srinivas, A. Krause, S. Kakade, and M. Seeger. Gaussian process optimization in the bandit setting:
    No regret and experimental design. In ICML, 2010.
    [13] J. Mockus, V. Tiesis, and A. Zilinskas. The application of Bayesian methods for seeking the extremum.
    In L.C.W. Dixon and G.P. Szego, editors, Towards Global Optimization, volume 2, pages 117–129. North
    Holland, New York, 1978.
    [14] C.E. Rasmussen and C. Williams. Gaussian Processes for Machine Learning.
    [15] D. Ginsbourger, D. Dupuy, A. Badea, L. Carraro, and O. Roustant. A note on the choice and the estimation of kriging models for the analysis of deterministic computer experiments. 25:115–131, 2009.
    [16] R. Bardenet and B. K´egl. Surrogating the surrogate: accelerating Gaussian Process optimization with
    mixtures. In ICML, 2010.
    [17] P. Larra˜naga and J. Lozano, editors. Estimation of Distribution Algorithms: A New Tool for Evolutionary Computation. Springer, 2001.
    [18] N. Hansen. The CMA evolution strategy: a comparing review. In J.A. Lozano, P. Larranaga, I. Inza, and
    E. Bengoetxea, editors, Towards a new evolutionary computation. Advances on estimation of distribution
    algorithms, pages 75–102. Springer, 2006.
    [19] J. Bergstra and Y. Bengio. Random search for hyper-parameter optimization. The Learning Workshop
    (Snowbird), 2011.
    [20] A. Hyv¨arinen and E. Oja. Independent component analysis: Algorithms and applications. Neural Networks, 13(4–5):411–430, 2000.
    [21] J. Bergstra and Y. Bengio. Random search for hyper-parameter optimization. JMLR, 2012. Accepted.
    [22] C. Bishop. Neural networks for pattern recognition. 1995.
    [23] J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, and Y. Bengio.
    Theano: a CPU and GPU math expression compiler. In Proceedings of the Python for Scientific Computing
    Conference (SciPy), June 2010.

    展开全文
  • 参数优化多尺度排列熵算法

    千次阅读 热门讨论 2021-01-28 17:27:25
    本文通过对尺度排列熵算法的参数时间序列长度 N、嵌入维数 m、延迟时间 t 和尺度因子 s 进行研究,得出对其参数优化的必要性。进而在综合考虑参数影响的 基础上,以尺度排列熵的偏度构造目标函数,提出了基于...

    目录

    一、多尺度排列熵原理

    1.1 排列熵(PE)

    1.2 多尺度排列熵(MPE)

    1.3 参数对MPE的影响

    二、参数优化方法

    2.1 遗传算法(GA)

    2.2 粒子群优化算法(PSO)

    2.3 多作用力粒子群优化算法(MFPSO)

    三、多尺度排列熵参数优化

    3.1 适应度函数的确定

    3.2 参数优化过程

    四、MATLAB源代码

    参考文献


    一、多尺度排列熵原理

    1.1 排列熵(PE)

    排列熵算法原理及MATLAB代码见地址:排列熵、模糊熵、近似熵、样本熵的原理及MATLAB实现

    排列熵只能检测时间序列在单一尺度上的复杂性和随机性。复杂系统的输出时间序列在多重尺度上包含特征信息,为研究时间序列的多尺度复杂性变化,排列熵分析不再满足。

    1.2 多尺度排列熵(MPE)

    对长度为 N 的时间序列X=\left \{ x_{i},i=1,2,...,N \right \}进行粗粒化处理得到粗粒化序列y_{j}^{(s)},其表达式为:

    其中,s 为尺度因子,s=1,2,...[N/s] 表示对 N/s 取整,当 s=1 时,粗粒化序列即为原始序列。

    对每个粗粒化序列y_{j}^{(s)},计算其排列熵即可得到多尺度排列熵。多尺度排列熵的计算流程如图1所示,具体步骤如下:

    (1)将时间序列粗粒化处理;

    (2)对每个粗粒化序列相空间重构; 

    (3)重构分量按升序排列,计算每一种符号序列出现的概率;

    (4)根据式(1-1)计算每个粗粒化序列的排列熵,并进行归一化处理,进而得到多尺度排列熵值。

    图1 多尺度排列熵计算流程

    1.3 参数对MPE的影响

    在粗粒化环节中,尺度因子的选择尤为重要,若尺度因子 s 取值过小,则不能最大限度的提取信号的特征信息;若 s 取值过大,将有可能造成信号之间的复杂度差异被抹除。同时,在多尺度排列熵的计算过程中,若嵌入维数 m 取值太小,算法的突变检测性能降低;若嵌入维数 m 取值太大,将无法反应时间序列的细微变化。而且,时间序列长度 N 与延迟时间 t 对多尺度排列熵算法也有着不同的影响。

    计算不同长度信号在不同嵌入维数m下的MPE值,如图 2(a)~2(d)所示。

    图2(a) 嵌入维数m=3
    图2(b) 嵌入维数m=4

     

    图2(c) 嵌入维数m=5
    图2(d) 嵌入维数m=6

     

    信号长度N=1024,嵌入维数m=6,尺度因子s=12,如图 3 所示为计算信号在不同延迟时间 t 值下的MPE值。

    图3 不同延迟时间 t 下的 MPE

     信号长度N=1024,嵌入维数m=6,延迟时间t=2,如图 4 所示为计算信号在不同尺度因子s下的MPE值。

    图4 不同尺度因子 s 下的 MPE

     

    二、参数优化方法

    2.1 遗传算法(GA)

    遗传算法的原理及MATLAB代码见地址:详解遗传算法(含MATLAB代码)

    遗传算法的流程如图5所示。

    图5 GA 算法流程图

    2.2 粒子群优化算法(PSO)

    粒子群优化算法的原理及MATLAB代码见地址:PSO-LSSVM算法及其MATLAB代码

    粒子群优化算法的流程如图6所示。

    图6 PSO 算法流程图

    2.3 多作用力粒子群优化算法(MFPSO)

    多作用力粒子群优化(Multi  Force  Particle  Swarm  Optimization,MFPSO)算法是对PSO 算法的改进,是一种阶段性搜索算法。该算法通过增加粒子间的引力、斥力等作用力构造规则,形成前期、中期和后期三个搜索阶段,使算法的搜索能力与收敛速度得到提高。

    三、多尺度排列熵参数优化

    3.1 适应度函数的确定

    为分析一组数据的总体趋势,通过求其均值,可以观察数据的集中趋势。但仅凭均值并不能够完全表征一组数据的总体概况,此时可以求取数据的偏度。偏度绝对值越大,表明均值的效能越有问题,偏度绝对值越小,则均值越可信赖。为此,本文选用多尺度排列熵偏度的平方函数作为目标函数,求其最小值。

    偏度表征的是概率密度为非正态分布的随机序列偏离正态分布的程度,是统计数据分布非对称程度的数字特征。其中,偏度为零,表示对称分布;偏度大于零,表示不对称部分的分布更趋向正值;偏度小于零,表示不对称部分的分布更趋向负值。

    将时间序列X=\left \{ x_{i},i=1,2,...,N \right \}所有尺度下的排列熵组成序列H_{p}(X)=\left \{ H_{p}(1),H_{p}(2),...,H_{p}(s) \right \},通过式(3-1)计算其偏度Ske:

    其中,H_{p}^{m}(X) 为序列 H_{p}(X)的均值;H_{p}^{d}(X)为 序列H_{p}(X)的标准差;E(\cdot )为求序列的期望。

    目标函数为:

    3.2 参数优化过程

    多尺度排列熵的参数优化流程如图8所示,具体过程如下: 

    (1)载入原始信号,设置各个优化算法的参数,初始化多尺度排列熵算法的参数;

    (2)由式(3-17)及式(3-18)求适应度函数,分别利用GA、PSO和MFPSO对 MPE 的参数进行优化,得到 3 组优化参数;

    (3)对 3 组优化参数进行对比分析,进而确定 MPE 的最优参数。

    图8 MPE 参数优化流程图

    四、MATLAB源代码

    遗传算法(GA)、粒子群优化算法(PSO)对多尺度排列熵算法(MPE)的参数进行寻优,得到最优参数,代码地址如下:参数优化多尺度排列熵

    参考文献

    [1]张运东. 基于 FVMD 多尺度排列熵和 GK 模糊聚类的故障诊断方法[D]. 秦皇岛:燕山大学, 32-45.

    [2]陈东宁, 张瑞星, 姚成玉, 等. 求解液压阀块加工车间调度的多作用力微粒群算法[J]. 中国机械工程, 2015, 26(3): 369-378.

    多尺度排列熵算法的提出者:Aziz  W, Arif  M. Multiscale  permutation entropy of physiological  times  series[C]//Proceeding  of IEEE International Multi-topic Conference, INMIC, 2005: 1-6.

    展开全文
  • 基于遗传算法参数优化 超参数调整| AutoML | 随机搜索和网格搜索 (Hyper-parameter Tuning | AutoML | RandomSearch & GridSearch) Most Professional Machine Learning practitioners follow the ML Pipeline...

    基于遗传算法超参数优化

    超参数调整| AutoML | 随机搜索和网格搜索 (Hyper-parameter Tuning | AutoML | RandomSearch & GridSearch)

    Most Professional Machine Learning practitioners follow the ML Pipeline as a standard, to keep their work efficient and to keep the flow of work. A pipeline is created to allow data flow from its raw format to some useful information. All sub-fields in this pipeline’s modules are equally important for us to produce quality results, and one of them is Hyper-Parameter Tuning.

    大多数专业机器学习从业人员都遵循ML管道作为标准,以确保他们的工作高效并保持工作流程。 创建管道以允许数据从其原始格式流到一些有用的信息。 该管道模块中的所有子字段对于我们产生高质量结果都同样重要,其中之一是超参数调整。

    Most of us know the best way to proceed with Hyper-Parameter Tuning is to use the GridSearchCV or RandomSearchCV from the sklearn module. But apart from these algorithms, there are many other Advanced methods for Hyper-Parameter Tuning. This is what the article is all about, Introduction to Advanced Hyper-Parameter Optimization, Transfer Learning and when & how to use these algorithms to make out the best of them.

    我们大多数人都知道进行超参数调整的最佳方法是使用sklearn模块中的GridSearchCVRandomSearchCV 。 但是除了这些算法之外,还有许多其他用于超参数调整的高级方法。 这就是本文的全部内容,高级超参数优化介绍,转移学习以及何时以及如何使用这些算法来充分利用它们。

    Both of the algorithms, Grid-Search and Random-Search are instances of Uninformed Search. Now, let’s dive deep !!

    网格搜索和随机搜索这两种算法都是无信息搜索的实例。 现在,让我们深入探讨!

    不知情的搜索 (Uninformed search)

    Here in these algorithms, each iteration of the Hyper-parameter tuning does not learn from the previous iterations. This is what allows us to parallelize our work. But, this isn’t very efficient and costs a lot of computational power.

    此处,在这些算法中,超参数调整的每个迭代都不从先前的迭代中学习。 这就是我们并行处理工作的原因。 但是,这不是很有效,并且需要大量的计算能力。

    Random search tries out a bunch of hyperparameters from a uniform distribution randomly over the preset list/hyperparameter search space (the number iterations is defined). It is good in testing a wide range of values and normally reaches to a very good combination very fastly, but the problem is that, it doesn’t guarantee to give the best parameter’s combination.

    随机搜索从预设列表/超参数搜索空间(已定义次数迭代)的均匀分布中随机尝试一堆超参数。 它可以很好地测试各种值,并且通常可以非常快速地达到一个很好的组合,但是问题是,它不能保证给出最佳参数的组合。

    On the other hand, Grid search will give the best combination, but it can takes a lot of time and the computational cost is high.

    另一方面,网格搜索将提供最佳的组合,但是会花费很多时间,并且计算成本很高。

    Image for post
    Searching Pattern of Grid and Random Search网格搜索模式和随机搜索

    It may look like grid search is the better option, compared to the random one, but bare in mind that when the dimensionality is high, the number of combinations we have to search is enormous. For example, to grid-search ten boolean (yes/no) parameters you will have to test 1024 (2¹⁰) different combinations. This is the reason, why random search is sometimes combined with clever heuristics, is often used.

    与随机选择相比,网格搜索看起来似乎是更好的选择,但请记住,当维数较高时,我们必须搜索的组合数量非常多。 例如,要对十个布尔值(是/否)进行网格搜索,您将必须测试1024个(2×1)不同的组合。 这就是为什么经常使用随机搜索和巧妙的启发式方法的原因。

    为什么要在网格搜索中引入随机性? [数学解释] (Why bring Randomness in Grid Search? [Mathematical Explanation])

    Random search is more of a stochastic search/optimization perspective — the reason we introduce noise (or some form of stochasticity) into the process is to potentially bounce out of poor local minima. While this is more typically used to explain the intuition in general optimization (like stochastic gradient descent for updating parameters, or learning temperature-based models), we can think of humans looking through the meta-parameter space as simply a higher-level optimization problem. Since most would agree that these dimensional spaces (reasonably high) lead to a non-convex form of optimization, we humans, armed even with some clever heuristics from the previous research, can get stuck in the local optima. Therefore, Randomly exploring the search space might give us better coverage, and more importantly, it might help us find better local optima.

    随机搜索更多是从随机搜索/优化角度出发的–我们将噪声(或某种形式的随机性)引入流程的原因是可能会较差的局部最小值中反弹。 虽然这通常用于解释一般优化中的直觉(例如用于更新参数的随机梯度下降,或基于温度的模型的学习),但我们可以认为人类通过元参数空间查看只是简单的高级优化问题。 由于大多数人都认为这些维数空间(合理地高)会导致优化的非凸形式,因此,即使使用先前研究中的一些巧妙启发法,我们人类也可以陷入局部最优中。 因此,随机探索搜索空间可以为我们提供更好的覆盖范围,更重要的是,它可以帮助我们找到更好的局部最优值。

    So far in Grid and Random Search Algorithms, we have been creating all the models at once and combining their scores before deciding the best model at the end. An alternative approach would be to build models sequentially, learning from each iteration. This approach is termed as Informed Search.

    到目前为止,在电网和随机搜索算法,我们一直在创造一次所有的车型,并在年底决定最好的模型前,他们的得分组合。 另一种方法是顺序构建模型,从每次迭代中学习。 这种方法称为“知情搜索”

    明智的方法:粗调到微调 (Informed Method: Coarse to Fine Tuning)

    A basic informed search methodology.The process follows:1. Random search2. Find promising areas in the search space3. Grid search in the smaller area4. Continue until optimal score is obtainedYou could substitute (3) with random searches before the grid search.

    基本的知情搜索方法。 该过程如下: 1.随机搜索2。 在搜索空间中找到有希望的领域3。 较小区域中的网格搜索4。 继续直到获得最佳分数您可以在网格搜索之前用随机搜索替换(3)。

    为什么要粗到细? (Why Coarse to Fine?)

    Coarse to Fine tuning optimizes and uses the advantages of both grid and random search.

    粗略微调优化并利用了网格搜索和随机搜索的优势。

    • Wide searching capabilities of random search

      广泛的随机搜索功能
    • Deeper search once you know where a good spot is likely to be

      一旦知道了哪里可能是一个好地方,就可以进行更深入的搜索

    No need to waste time on search spaces that are not giving good results !! Therefore, this better utilizes the spending of time and computational efforts, i.e we can iterate quickly, also there is boost in the performance.

    无需在搜索效果不佳的搜索空间上浪费时间! 因此,这更好地利用了时间和计算上的花费,即我们可以快速迭代,并且性能也得到了提高。

    通报的方法:贝叶斯统计 (Informed Method: Bayesian Statistics)

    The most popular informed search method is Bayesian Optimization. Bayesian Optimization was originally designed to optimize black-box functions.

    最受欢迎的知情搜索方法是贝叶斯优化。 贝叶斯优化最初旨在优化黑盒功能。

    This is a basic theorem or rule from Probability Theory and Statistics, in case if you want to brush up and get refreshed with the terms used here, refer this.

    这是“概率论与统计”中的一个基本定理或规则,以防万一,如果您想重新使用此处所使用的术语并感到耳目一新,请参阅

    Bayes Rule | TheoremA statistical method of using new evidence to iteratively update our beliefs about some outcome. In simpler words, it is used to calculate the probability of an event based on its association with another event.

    贝叶斯规则| 定理一种使用新证据迭代更新我们对某些结果的信念的统计方法。 简而言之,它用于基于事件与另一个事件的关联来计算事件的概率。

    • LHS is the probability of A, given B has occurred. B is some new evidence. This is known as the ‘posterior’.

      LHS是给定B发生时A的概率。 B是一些新证据。 这就是所谓的“后验”。
    • RHS is how we calculate this.

      RHS是我们计算的方式。
    • P(A) is the ‘prior’. The initial hypothesis about the event. It is different to P(A|B), the P(A|B) is the probability given new evidence.

      P(A)是“先验”。 有关事件的初始假设。 与P(A | B)不同,P(A | B)是给出新证据的概率。
    • P(B) is the ‘marginal likelihood’ and it is the probability of observing this new evidence.

      P(B)是“边际可能性”,它是观察到这一新证据的概率。
    • P(B|A) is the ‘likelihood’ which is the probability of observing the evidence, given the event we care about.

      P(B | A)是“可能性”,是给定我们关心的事件,观察证据的可能性。

    Applying the logic of Bayes rule to hyperparameter tuning:1. Pick a hyperparameter combination2. Build a model3. Get new evidence (i.e the score of the model)4. Update our beliefs and chose better hyperparameters next round

    将贝叶斯规则的逻辑应用于超参数调整: 1.选择一个超参数组合2。 建立模型3。 获取新证据(即模型的分数)4。 更新我们的信念,并在下一轮选择更好的超参数

    Bayesian hyperparameter tuning is quite new but is very popular for larger and more complex hyperparameter tuning tasks as they work well to find optimal hyperparameter combinations in these kinds of situations.

    贝叶斯超参数调优是一个很新的技术,但是在较大和更复杂的超参数调优任务中非常流行,因为它们可以很好地在这种情况下找到最佳的超参数组合。

    注意 (Note)

    For more complex cases you might want to dig a bit deeper and explore all the details about Bayesian optimization. Bayesian optimization can only work on continuous hyper-parameters, and not categorical ones.

    对于更复杂的情况,您可能需要更深入地挖掘并探索有关贝叶斯优化的所有细节。 贝叶斯优化只能在连续的超参数上起作用,而不能在分类参数上起作用。

    使用HyperOpt进行贝叶斯超参数调整 (Bayesian Hyper-parameter Tuning with HyperOpt)

    HyperOpt package, uses a form of Bayesian optimization for parameter tuning that allows us to get the best parameters for a given model. It can optimize a model with hundreds of parameters on a very large scale.

    HyperOpt软件包使用贝叶斯优化形式进行参数调整,这使我们能够为给定模型获得最佳参数。 它可以大规模优化具有数百个参数的模型。

    Image for post
    HyperOpt: HyperOptDistributed Hyper-parameter Optimization分布式超参数优化

    To know more about this library and the parameters of HyperOpt library feel free to visit here. And visit here for a quick tutorial with adequate explanation on how to use HyperOpt for Regression and Classification.

    要了解有关此库和HyperOpt库参数的更多信息,请随时访问此处。 并参观这里 快速教程,其中包含有关如何使用HyperOpt进行回归和分类的充分说明。

    介绍HyperOpt软件包。 (Introducing the HyperOpt package.)

    To undertake Bayesian hyperparameter tuning we need to:1. Set the Domain: Our Grid i.e. search space (with a bit of a twist)2. Set the Optimization algorithm (default: TPE)3. Objective function to minimize: we use “1-Accuracy”

    要进行贝叶斯超参数调整,我们需要:1。 设置域:我们的网格,即搜索空间(稍有变化)2。 设置优化算法(默认值:TPE)3。 目标函数最小化:我们使用“ 1-Accuracy”

    Know more about the Optimization Algorithm used, Original Paper of TPE (Tree of Parzen Estimators)

    了解有关使用的优化算法的更多信息,TPE原始论文(Parzen估计器树)

    Algorithms for Advanced Hyper-Parameter Optimization高级超参数优化算法

    使用HyperOpt [随机森林]的示例代码(Sample Code for using HyperOpt [ Random Forest ])

    HyperOpt does not use point values on the grid but instead, each point represents probabilities for each hyperparameter value. Here, simple uniform distribution is used, but there are many more if you check the documentation.

    HyperOpt不在网格上使用点值,而是每个点代表每个超参数值的概率。 在这里,使用简单的统一分发,但是如果您查看文档,还有更多信息

    # Set up space dictionary with specified hyperparameters
    space = {
    	'max_depth': hp.quniform('max_depth', 2, 10, 2),
    	'min_samples_leaf': hp.quniform('min_samples_leaf', 2, 8, 2),
    	'learning_rate': hp.uniform('learning_rate', 0.001, 0.9)
    }
    
    
    # Set up objective function
    def objective(params):
        params = {
    		'max_depth': int(params['max_depth']),
    		'min_samples_leaf': int(params['min_samples_leaf']),
    		'learning_rate': params['learning_rate']
    	}
        gbm_clf = GradientBoostingClassifier(n_estimators=100, **params) 
        best_score = cross_val_score(gbm_clf, X_train, y_train, scoring='accuracy', cv=2, n_jobs=4).mean()
        loss = 1 - best_score
        return loss
    
    
    # Run the algorithm
    best_result = fmin(
    	fn=objective,
    	space=space,
    	max_evals=100,
    	rstate=np.random.RandomState(73),
    	algo=tpe.suggest
    )
    
    
    print(best_result)
    
    
    ''' OUTPUT
    {'learning_rate': 0.023790662701828766, 'max_depth': 2.0, 'min_samples_leaf': 8.0}
    '''

    To really see this in action !! try on a larger search space, with more trials, more CVs and a larger dataset size.

    要真正看到这个动作! 尝试使用更大的搜索空间,更多的试验,更多的简历和更大的数据集大小。

    图片发布

    有关HyperOpt的实际实现,请参考: (For practical implementation of HyperOpt refer:)

    [1] Hyperopt Bayesian Optimization for Xgboost and Neural network[2] Tuning using HyperOpt in python

    [1]针对Xgboost和神经网络的Hyperopt贝叶斯优化[2]在python中使用HyperOpt进行调整

    明智的方法:遗传算法(Informed Method: Genetic Algorithms)

    Why does this work well?1. It allows us to learn from previous iterations, just like Bayesian hyperparameter tuning.2. It has the additional advantage of some randomness3. TPOT will automate the most tedious part of machine learning by intelligently exploring thousands of possible pipelines to find the best one for your data.

    为什么运作良好? 1.它使我们可以从以前的迭代中学习,就像贝叶斯超参数调整一样。2。 它具有一些随机性的额外优势3 TPOT将智能地探索数千种可能的管道以找到最适合您的数据的管道,从而使机器学习中最繁琐的部分自动化。

    遗传超参数调整的有用库:TPOT (A useful library for genetic hyperparameter tuning: TPOT)

    TPOT is a Python Automated Machine Learning tool that optimizes machine learning pipelines using genetic programming.Consider TPOT your Data Science Assistant for advanced optimization.

    TPOT是Python自动机器学习工具,可使用遗传编程来优化机器学习管道。 TPOT是您的数据科学助手,可以进行高级优化。

    Pipelines not only include the model (or multiple models) but also work on features and other aspects of the process. Plus it returns the Python code of the pipeline for you! TPOT is designed to run for many hours to find the best model. You should have a much larger population and offspring size as well as hundreds of more generations to find a good model.

    管道不仅包括模型(或多个模型),而且还涉及过程的功能和其他方面。 加上它为您返回管道的Python代码! TPOT设计运行许多小时才能找到最佳模型。 您应该拥有更大的人口和更多的后代,以及数百个后代才能找到一个好的模型。

    TPOT组件(主要参数) (TPOT Components ( Key Arguments ))

    • generations — Iterations to run training for

      世代—为进行训练而进行的迭代

    • population_size — The number of models to keep after each iteration

      mass_size —每次迭代后要保留的模型数

    • offspring_size — Number of models to produce in each iteration

      offspring_size-每次迭代中要生成的模型数

    • mutation_rate — The proportion of pipelines to apply randomness to

      variant_rate —将随机性应用于

    • crossover_rate — The proportion of pipelines to breed each iteration

      crossover_rate —繁殖每次迭代的管道比例

    • scoring — The function to determine the best models

      评分-确定最佳模型的功能

    • cv — Cross-validation strategy to use

      cv-使用的交叉验证策略

    from tpot import TPOTClassifier
    
    
    # Create the tpot classifier
    tpot_clf = TPOTClassifier(generations=3, population_size=4,
                              offspring_size=3, scoring="accuracy",
                              verbosity=2, random_state=73, cv=2)
    
    
    # Fit the classifier to the training data
    tpot_clf.fit(X_train, y_train)
    
    
    # Score on the test set
    print(tpot_clf.score(X_test, y_test))

    We will keep default values for mutation_rate and crossover_rate as they are best left to the default without deeper knowledge on genetic programming.

    我们将保留mutation_ratecrossover_rate的默认值,因为最好将其保留为默认值,而无需对基因编程有更深入的了解。

    注意:没有特定于算法的超参数? (Notice: No algorithm-specific hyperparameters?)

    Since TPOT is an open-source library for performing AutoML in Python. AutoML ??Automated Machine Learning (AutoML) refers to techniques for automatically discovering well-performing models for predictive modeling tasks with very little user involvement.

    由于TPOT是用于在Python中执行AutoML的开源库。 AutoML自动化机器学习(AutoML)是指用于自动发现性能良好的模型的技术,这些模型可以在很少用户参与的情况下进行预测性建模任务。

    图片发布
    Output for the above code snippet以上代码段的输出

    TPOT is quite unstable when not run for a reasonable amount of time. The below code snippets shows the instability of TPOT. Here, only the random state has been changed in the below three codes, but the Output shows major differences in choosing the pipeline, i.e. model and it’s hyperparameters.

    如果在相当长的时间内不运行,TPOT会非常不稳定。 下面的代码段显示了TPOT的不稳定。 此处,以下三个代码仅更改了随机状态,但输出显示了选择管道(即模型及其超参数)的主要差异。

    # Create the tpot classifier 
    tpot_clf = TPOTClassifier(generations=2, population_size=4, offspring_size=3, scoring='accuracy', cv=2,
                              verbosity=2, random_state=42)
    
    
    # Fit the classifier to the training data
    tpot_clf.fit(X_train, y_train)
    
    
    # Score on the test set
    print(tpot_clf.score(X_test, y_test))
    
    
    ''' OUTPUT 
    Warning: xgboost.XGBClassifier is not available and will not be used by TPOT.
    Generation 1 - Current best internal CV score: 0.7549688742218555
    Generation 2 - Current best internal CV score: 0.7549688742218555
    
    
    Best pipeline: DecisionTreeClassifier(input_matrix, criterion=gini, max_depth=7, min_samples_leaf=11, min_samples_split=12)
    0.75
    '''
    # Create the tpot classifier 
    tpot_clf = TPOTClassifier(generations=2, population_size=4, offspring_size=3, scoring='accuracy', cv=2,
                              verbosity=2, random_state=122)
    
    
    # Fit the classifier to the training data
    tpot_clf.fit(X_train, y_train)
    
    
    # Score on the test set
    print(tpot_clf.score(X_test, y_test))
    
    
    ''' OUTPUT
    Warning: xgboost.XGBClassifier is not available and will not be used by TPOT.
    Generation 1 - Current best internal CV score: 0.7675066876671917
    Generation 2 - Current best internal CV score: 0.7675066876671917
    
    
    Best pipeline: KNeighborsClassifier(MaxAbsScaler(input_matrix), n_neighbors=57, p=1, weights=distance)
    0.75
    '''
    # Create the tpot classifier 
    tpot_clf = TPOTClassifier(generations=2, population_size=4, offspring_size=3, scoring='accuracy', cv=2,
                              verbosity=2, random_state=99)
    
    
    # Fit the classifier to the training data
    tpot_clf.fit(X_train, y_train)
    
    
    # Score on the test set
    print(tpot_clf.score(X_test, y_test))
    
    
    ''' OUTPUT
    Warning: xgboost.XGBClassifier is not available and will not be used by TPOT.
    Generation 1 - Current best internal CV score: 0.8075326883172079
    Generation 2 - Current best internal CV score: 0.8075326883172079
    
    
    Best pipeline: RandomForestClassifier(SelectFwe(input_matrix, alpha=0.033), bootstrap=False, criterion=gini, max_features=1.0, min_samples_leaf=19, min_samples_split=10, n_estimators=100)
    0.78
    '''

    You can see in the output the score produced by the chosen model (in this case a version of Naive Bayes) over each generation, and then the final accuracy score with the hyperparameters chosen for the final model. This is a great first example of using TPOT for automated hyperparameter tuning. You can now extend this on your own and build great machine learning models!

    您可以在输出中看到所选模型(在本例中为Naive Bayes的版本)每一代生成的分数,然后是最终精度分数以及为最终模型选择的超参数。 这是使用TPOT进行自动超参数调整的一个很好的示例。 您现在可以自己扩展它,并构建出色的机器学习模型!

    要了解有关TPOT的更多信息: (To understand more about TPOT:)

    [1] TPOT for Automated Machine Learning in Python[2] For more information in using TPOT, visit the documentation.

    [1]用于使用Python进行自动机器学习的TPOT [2]有关使用TPOT的更多信息,请访问文档

    概要 (Summary)

    In informed search, each iteration learns from the last, whereas in Grid and Random, modelling is all done at once and then the best is picked. In case for small datasets, GridSearch or RandomSearch would be fast and sufficient. AutoML approaches provide a neat solution to properly select the required hyperparameters that improve the model’s performance.

    在明智的搜索中,每个迭代都从最后一次学习,而在Grid和Random中,建模一次完成,然后选择最佳。 如果是小型数据集,则GridSearch或RandomSearch将足够快速且足够。 AutoML方法提供了一种精巧的解决方案,可以正确选择所需的超参数,从而改善模型的性能。

    Informed methods explored were:1. ‘Coarse to Fine’ (Iterative random then grid search).2. Bayesian hyperparameter tuning, updating beliefs using evidence on model performance (HyperOpt).3. Genetic algorithms, evolving your models over generations (TPOT).

    探索的信息方法是: 1.“从粗到精”(迭代随机然后网格搜索)2。 贝叶斯超参数调整,使用模型性能证据更新信念(HyperOpt); 3。 遗传算法,几代人不断发展的模型(TPOT)。

    I hope you’ve learned some useful methodologies for your future work undertaking hyperparameter tuning in Python!

    希望您在以后的工作中学习了一些有用的方法学,以便在Python中进行超参数调整!

    If you are curious to know about Golang’s Routers and want to try out a simple web development project using Go, I suggest to read the above article.

    如果您想了解Golang的路由器并想尝试使用Go进行简单的Web开发项目,建议阅读以上文章。

    For more informative articles from me, follow me on medium.
    And if you’re passionate about Data Science/Machine Learning, feel free to add me on
    LinkedIn.

    有关我的更多有益文章,请在medium上关注我 如果您对数据科学/机器学习充满热情,请随时在LinkedIn上加我

    图片发布
    ❤ Clapping is Caring ❤
    ❤拍手就是关怀❤

    Don’t forget to Smash that CLAP button 👏🏻 before you go :D

    在您离开之前,请不要忘记按一下CLAP按钮D:D

    翻译自: https://medium.com/analytics-vidhya/algorithms-for-advanced-hyper-parameter-optimization-tuning-cebea0baa5d6

    基于遗传算法超参数优化

    展开全文
  • 优化算法】简述灰狼优化算法(GWO)原理

    万次阅读 多人点赞 2019-03-25 21:10:34
    系列优化算法简述: OP_1. 简述遗传算法(GA)原理 OP_2 简述灰狼优化算法(GWO)原理 前言: 灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能...

    前言:

    灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法。该算法受到了灰狼捕食猎物活动的启发而开发的一种优化搜索方法,它具有较强的收敛性能、参数少、易实现等特点。近年来受到了学者的广泛关注,它己被成功地应用到了车间调度、参数优化、图像分类等领域中。


    算法原理:

    灰狼隶属于群居生活的犬科动物,且处于食物链的顶层。灰狼严格遵守着一个社会支配等级关系。如图:

    社会等级第一层:狼群中的头狼记为 \alpha\alpha 狼主要负责对捕食、栖息、作息时间等活动作出决策。由于其它的狼需要服从\alpha 狼的命令,所以 \alpha 狼也被称为支配狼。另外, \alpha 狼不一定是狼群中最强的狼,但就管理能力方面来说, \alpha 狼一定是最好的。

    社会等级第二层\beta 狼,它服从于 \alpha 狼,并协助 \alpha 狼作出决策。在 \alpha 狼去世或衰老后,\beta 狼将成为 \alpha 狼的最候选者。虽然 \beta 狼服从 \alpha 狼,但 \beta 狼可支配其它社会层级上的狼。

    社会等级第三层\delta 狼,它服从 \alpha 、\beta 狼,同时支配剩余层级的狼。\delta 狼一般由幼狼、哨兵狼、狩猎狼、老年狼及护理狼组成。

    社会等级第四层\omega 狼,它通常需要服从其它社会层次上的狼。虽然看上去 \omega 狼在狼群中的作用不大,但是如果没有 \omega 狼的存在,狼群会出现内部问题如自相残杀。

    GWO 优化过程包含了灰狼的社会等级分层跟踪包围攻击猎物等步骤,其步骤具体情况如下所示。

    1)社会等级分层(Social Hierarchy)当设计 GWO 时,首先需构建灰狼社会等级层次模型。计算种群每个个体的适应度,将狼群中适应度最好的三匹灰狼依次标记为 \alpha\beta 、\delta ,而剩下的灰狼标记为 \omega。也就是说,灰狼群体中的社会等级从高往低排列依次为; \alpha\beta 、\delta  及 \omega。GWO 的优化过程主要由每代种群中的最好三个解(即  \alpha\beta 、\delta )来指导完成。

    2)包围猎物( Encircling Prey )灰狼捜索猎物时会逐渐地接近猎物并包围它,该行为的数学模型如下:

    式中:t 为当前迭代次数:。表示 hadamard 乘积操作;A 和 C 是协同系数向量;Xp 表示猎物的位置向量; X(t) 表示当前灰狼的位置向量;在整个迭代过程中 a 由2 线性降到 0; r1 和 r2 是 [0,1] 中的随机向量。

    3)狩猎( Hunring)

    灰狼具有识别潜在猎物(最优解)位置的能力,搜索过程主要靠 \alpha\beta 、\delta 灰狼的指引来完成。但是很多问题的解空间特征是未知的,灰狼是无法确定猎物(最优解)的精确位置。为了模拟灰狼(候选解)的搜索行为,假设 \alpha\beta 、\delta 具有较强识别潜在猎物位置的能力。因此,在每次迭代过程中,保留当前种群中的最好三只灰狼( \alpha\beta 、\delta ),然后根据它们的位置信息来更新其它搜索代理(包括 \omega)的位置。该行为的数学模型可表示如下:

    式中:X_{_{\alpha }}X_{_{\beta }}X_{_{\delta }} 分别表示当前种群中 \alpha\beta 、\delta 的位置向量;X表示灰狼的位置向量;D_{_{\alpha }}D_{_{\beta }}D_{_{\delta }}  分别表示当前候选灰狼与最优三条狼之间的距离;当|A|>1时,灰狼之间尽量分散在各区域并搜寻猎物。当|A|<1时,灰狼将集中捜索某个或某些区域的猎物。

    从图中可看出,候选解的位置最终落在被 \alpha\beta 、\delta 定义的随机圆位置内。总的来说, \alpha\beta 、\delta 需首先预测出猎物(潜
    在最优解)的大致位置,然后其它候选狼在当前最优兰只狼的指引下在猎物附近随机地更新它们的位置。

    4)攻击猎物(Attacking Prey)构建攻击猎物模型的过程中,根据2)中的公式,a值的减少会引起 A 的值也随之波动。换句话说,A 是一个在区间[-a,a](备注:原作者的第一篇论文里这里是[-2a,2a],后面论文里纠正为[-a,a])上的随机向量,其中a在迭代过程中呈线性下降。当 A 在[-1,1]区间上时,则捜索代理(Search Agent)的下一时刻位置可以在当前灰狼与猎物之间的任何位置上。

    5)寻找猎物(Search for Prey)灰狼主要依赖 \alpha\beta 、\delta 的信息来寻找猎物。它们开始分散地去搜索猎物位置信息,然后集中起来攻击猎物。对于分散模型的建立,通过|A|>1使其捜索代理远离猎物,这种搜索方式使 GWO 能进行全局搜索。GWO 算法中的另一个搜索系数是C。从2)中的公式可知,C向量是在区间范围[0,2]上的随机值构成的向量,此系数为猎物提供了随机权重,以便増加(|C|>1)或减少(|C|<1)。这有助于 GWO 在优化过程中展示出随机搜索行为,以避免算法陷入局部最优。值得注意的是,C并不是线性下降的,C在迭代过程中是随机值,该系数有利于算法跳出局部,特别是算法在迭代的后期显得尤为重要。


    参考文献:

    加工时间可控的多目标车间调度问题研究

    Grey Wolf Optimizer
     

     

    展开全文
  • 机器学习超参数优化算法-Hyperband

    千次阅读 2019-10-05 14:21:49
    传统优化算法 机器学习中模型性能的好坏往往与超参数(如batch size,filter size等)密切的关系。最开始为了找到一个好的超参数,通常都是靠人工试错的方式找到"最优"超参数。但是这种方式效率太...
  • 模型参数优化(一):遗传算法

    万次阅读 2019-06-25 15:57:39
    参数是指算法中的未知数,的需要人为指定,比如神经网络算法中的学习...常用的参数优化方法主要包括交叉验证、网格搜索、遗传算法、粒子群优化、模拟退火,本节介绍遗传算法。 遗传算法实质:选定一批最佳参数,...
  • 目标优化-NSGAII算法

    千次阅读 2020-07-04 22:42:26
    NSGA-II学习笔记 ...从学长那里得知,NSGA-II和MOEAD是目标优化算法的经典算法,不了解这两个讲点算法,相当于白学了目标优化算法,很算法也是基于NSGA-II和MOEAD来进行改进和拓展,从而衍生出一系列算法
  • 果蝇优化算法优化Z-SCORE模型参数

    千次阅读 2017-03-31 15:14:19
    Z-SCORE模型 (企业风险预测) 定义 ...结果如下,20家企业中6家预测结果和实际不相符。...由此可知,Z-SCORE 模型侦测财务危机预警的能力尚有改善空间,可能是时空背景的不同,导致该...[1] 果蝇优化算法.潘文超
  • 摘要:鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提出的一种新的群体智能优化算法,其优点在于操作简单,调整的参数少以及跳出局部 最优的能力强。 1.算法...
  • 优化算法——常见优化算法分类及总结

    万次阅读 多人点赞 2018-10-27 12:54:53
    之前做特征选择,实现过基于群智能算法进行最优化的搜索,看过一些群智能优化算法的论文,在此做一下总结。 最优化问题  在生活或者工作中存在各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在...
  • 传统优化算法VS智能优化算法

    千次阅读 2020-12-20 11:05:40
    传统优化算法一般是针对结构化的问题,较为明确的问题和条件描述,如线性规划,二次规划,整数规划,混合规划,带约束和不带约束条件等,即清晰的结构信息;而智能优化算法一般针对的是较为普适的问题描述,普遍...
  • 智能优化算法

    万次阅读 多人点赞 2018-09-03 21:27:12
    智能优化算法 目录 智能优化算法 目录 遗传算法(Genetic Algorithm) 理论 特点 领域 算法流程 差分进化算法(Differential Evolution Algorithm) 理论 特点 领域 算法流程 免疫算法(Immune Algorithm,...
  • 文章目录鲸鱼优化算法(Whale Optimization Algorithm,WOA)1.1 灵感1.2 数学建模和优化算法1.2.1 包围捕食(Encircling prey)1.2.2 气泡网攻击方式(Bubble-net attacking method)(利用阶段)1.2.3搜索猎物...
  • 优化算法——拟牛顿之BFGS算法

    万次阅读 2015-05-20 11:31:14
    一、BFGS算法简介  BFGS算法是使用较的... 同DFP校正的推导公式一样,DFP校正见博文“优化算法——拟牛顿之DFP算法”。对于拟牛顿方程: 可以化简为: 令,则可得: 在B
  • 任务进化优化算法(一)——因子进化算法(MFEA)

    千次阅读 多人点赞 2019-10-25 19:09:21
    最近看了很关于任务优化的文章,觉得这是一个蛮有意思的方向,想把里面最经典的两个方法介绍给大家,今天先介绍第一个MFEA,这个方向一个平台,这里面原作者的代码及最新的出版物,感兴...
  • 粒子群优化算法(PSO)

    万次阅读 多人点赞 2018-06-04 20:07:09
    粒子群优化算法(Partical Swarm Optimization PSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。由于PSO操作简单、收敛速度快,...
  • 优化算法:牛顿

    千次阅读 2017-02-15 15:59:24
    我们在接触具体的机器学习算法前,其实很必要对优化问题进行一些介绍。 
随着学习的深入,笔者越来越发现最优化方法的重要性,学习和工作...最常见的最优化方法梯度下降、牛顿和拟牛顿、共轭梯度方向等。
  • 机器学习之优化算法

    千次阅读 2019-06-17 18:45:27
    (3)优化算法有哪些? 1. 什么是优化算法优化算法就是那个使策略(损失函数)最小化的方法,或者说通过迭代的方法(优化算法计算损失函数的最优解。 2. 优化算法作用是什么? 简单说优化算法作用就是,用来...
  • 智能优化算法:蜻蜓优化算法-附代码 文章目录智能优化算法:蜻蜓优化算法-附代码1.算法原理1.1分离2.2 排队2.3 结盟2.4 寻找猎物2.5 躲避天敌2.算法流程3.算法结果4.参考文献5.MATALAB代码 摘要:蜻蜓优化算法( ...
  • 智能优化算法:蝴蝶优化算法-附代码

    千次阅读 热门讨论 2020-08-07 09:58:08
    智能优化算法:蝴蝶优化算法-附代码 文章目录智能优化算法:蝴蝶优化算法-附代码1.算法原理2.算法流程:3.算法结果4.参考文献:5.MATLAB代码 摘要:蝴蝶优化算法 (Butterfly optimization algorithm,BOA)是由 ...
  • 蚁群优化算法

    千次阅读 2019-11-05 15:06:25
    蚁群优化算法1.蚁群优化算法简介2.蚁群优化算法基本思想3.蚁群优化算法设计流程4....这种算法具有分布计算、信息正反馈和启发式搜索的特征,本质上是进化算法中的一种启发式全局优化算法。 2.蚁群优化算...
  • 智能优化算法:麻雀搜索算法-附代码

    万次阅读 多人点赞 2020-09-27 16:34:00
    2020智能优化算法:麻雀搜索算法-附代码 文章目录2020智能优化算法:麻雀搜索算法-附代码1.算法原理2.算法结果3.参考文献4.Matlab代码 摘要:麻雀搜索算法(Sparrow Search Algorithm, SSA)是于2020年提出的。SSA ...
  • 算法模型自动超参数优化方法!

    千次阅读 2020-12-22 19:57:32
    什么是超参数?学习器模型中一般两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter)。还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(...
  • 优化算法——遗传算法

    万次阅读 多人点赞 2015-05-10 17:09:28
    与遗传算法的第一次接触 遗传算法的基本概念 基本定义 遗传算法的基本流程 遗传算法过程中的具体操作 参数的编码 二进制编码 Gray编码 实数编码 有序编码 初始群体的设定 适应度函数的计算 遗传操作设计 选择...
  • 优化算法——拟牛顿之DFP算法

    万次阅读 热门讨论 2015-05-19 22:11:04
     在博文“优化算法——牛顿(Newton Method)”中介绍了牛顿的思路,牛顿具有二阶收敛性,相比较最速下降,收敛的速度更快。在牛顿中使用到了函数的二阶导数的信息,对于函数,其中表示向量。在牛顿的...
  • 智能优化算法:多元宇宙优化算法-附代码 文章目录智能优化算法:多元宇宙优化算法-附代码1.算法原理2.算法流程图3.算法结果4.参考文献5.MATLAB代码 摘要:多元宇宙优化算法(Multi-Verse Optimizer,MVO)是Seyedali...
  • TEB轨迹优化算法-代码解析与参数建议

    千次阅读 多人点赞 2020-03-06 11:41:50
    TEB算法总结 1. 简介 ​ “TEB”全称Time ...在轨迹优化过程中,该算法拥有多种优化目标,包括但不限于:整体路径长度、轨迹运行时间、与障碍物的距离、通过中间路径点以及机器人动力学、运动学以及几何约束的符...
  • 智能优化算法:海鸥优化算法-附代码

    千次阅读 2020-07-23 14:24:01
    2019智能算法:海鸥优化算法-附代码 摘要:本文简单介绍智能优化算法-海鸥优化算法 1.原理 海鸥是遍布全球的海鸟,海鸥种类繁多且大小和身长各不相同。 海鸥是杂食动物,吃昆虫、鱼、爬行动物、两栖动物和蚯蚓等。 ...
  • 摘要:正 余 弦 优 化 算 ( Sine Cosine Algorithm,SCA) 是Seyedali Mirjalili等于2016年提出的一种新型智能优化算法,在算法中会生成个初始随机候选解,并使它们基于正弦和余弦的数学模型向外波动或向最优解...
  • 智能优化算法:头脑风暴优化算法 文章目录智能优化算法:头脑风暴优化算法1.算法原理1.1 聚类1.2 变异2.算法流程3.算法结果4.参考文献5.MATLAB代码 摘要:头脑风暴优化算法(Brain Storming Optimization algorithm, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 407,669
精华内容 163,067
关键字:

多参数优化算法有哪些