问题标签 [hyperparameters]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
609 浏览

python - 在 R^n 中对立方体/球体进行网格搜索

R^n我正在尝试在n未知的球体上实现网格搜索(在 Python 中,如果重要的话) 。

输入包括球体的半径和中心,以及theta控制网格分辨率的超参数。我想将这个球体中的每个点表示为这三个参数的函数。

我也愿意考虑立方体搜索,只迭代立方体的面。(即,迭代L_inf球体

如果我知道 n=2,我会做的是:

由于n可以任意大,我正在寻找一种有效地迭代球体\立方体的方法。

有任何想法吗?

++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++

我最终使用了一个修改后的版本:

输出图:

在此处输入图像描述

另一种选择是在 sphere 上生成 均匀分布的样本。请注意,样本数控制点的“密度”(或预期密度):

最糟糕的方法(就简单性和效率而言)是使用n-1 角度的枚举在球体上生成点。效率低下是因为需要计算产品sin并且cos经常(尽管这也可能被黑客入侵)

0 投票
0 回答
135 浏览

hyperparameters - LSSVM 超参数调优

我想通过在 matlab 中使用 tunelssvm 来设置 LSSVM 超参数的初始值,如下所示:

在代码中,我希望 gam 和 sig2 的起始值为 1。但是,我为 sig2 得到的结果是 0.005... 谁能帮助我如何设置起始值或使它们在范围内?

0 投票
1 回答
406 浏览

python - 将 Keras 与 Spearmint 集成的问题

当我使用 spearmint 优化 Keras 模型的超参数时,它第一次运行良好。但是从第二份工作开始,它总是会引发以下错误。

我正在使用以下代码加载预先创建的训练数据和测试数据的 numpy 数组。以下参数由优化 python 脚本传递。但是,如果在没有留兰香的情况下运行,这组参数可以正常工作。

0 投票
1 回答
977 浏览

machine-learning - 参数选择和k折交叉验证

我有一个数据集,需要对整个数据集做交叉验证,比如10折交叉验证。我想使用带有参数选择的径向基函数 (RBF) 内核(RBF 内核有两个参数:C 和 gamma)。通常,人们使用开发集选择 SVM 的超参数,然后使用基于开发集的最佳超参数并将其应用于测试集进行评估。但是,在我的例子中,原始数据集被划分为 10 个子集。随后,使用在其余 9 个子集上训练的分类器对一个子集进行测试。很明显,我们没有固定的训练和测试数据。在这种情况下我应该如何进行超参数选择?

0 投票
0 回答
318 浏览

matlab - 使用连续/整数参数和约束进行优化

我正在使用不同的分类器来解决由两个类组成的分类问题。当然,我必须调整我想作为优化问题处理的超参数。成本函数是(交叉验证的)准确度。我有以下三个不同的优化问题:

  1. 连续参数 + 1-2 个整数值参数进行优化(也许整数值参数可以被删除和单独优化) 参数的边界约束(下界和上限) 一些参数的等式约束 => sum(w(i) ) = 1 对于权重参数 w(i),其中 0 <= w(i) <= 1。权重用于 SVM 的加权 RBF 内核。

  2. 仅连续参数 对参数的约束

  3. 仅限整数值参数 对参数的约束

我已经使用 Matlab 的 fminsearch 函数开始使用 Nelder-Mead 了,但这对于 1. 和 3 来说似乎不是最佳的。对于这三种类型,您建议使用哪些优化程序?一种可能性是使用 Matlab 的 ga 函数进行混合整数编程,但根据文档,等式约束可能是一个问题。

另外,我有一个距离度量参数,它是一个字符串(例如欧几里德距离等)。我应该在优化过程中将其视为整数吗?例如,将欧几里得映射到 1,将马氏映射到 2 等。

最重要的是,另一个问题是局部最小值。如何有效地解决这个问题(不使用有点耗时的随机重启)?

0 投票
1 回答
92 浏览

machine-learning - 创建具有已知 SVM 参数的合成数据集

我想创建一个包含 2 个类和 3 个特征的合成数据集,用于测试具有 RBF 内核的 SVM 分类器的超参数优化技术。超参数是 gamma 和 C(成本)。

我创建了我当前的 3D 合成数据集,如下所示:

  1. 我通过分别具有均值 (1,0,0) 和 (0,1,0) 以及单位方差的多元正态分布进行采样,为每个类创建了 10 个基于点。

  2. 我通过随机选择一个基点,然后从平均值等于所选基点和方差 I/5 的正态分布中采样一个新点,为每个类添加了更多点。

如果我可以从数据集中(在运行 SVM 之前)确定最佳 C 和 gamma,那将是一件非常酷的事情,这样我就可以查看我的优化技术是否最终为我提供了最佳参数。

是否有可能从上述合成数据集中计算出最佳的 gamma 和 C 参数?

或者有没有办法创建一个已知最佳 gamma 和 C 参数的合成数据集?

0 投票
1 回答
58 浏览

machine-learning - 如何在使用带有 RBF 内核的 SVM 的系统之间进行适当的比较?

在比较使用 SVM 和 RBF 内核的系统时,我们应该对所有系统使用相同的 C 和 gamma(固定值,例如 C=10,gamma=0.1)还是进行超参数翻转并为每个系统选择最佳的 C 和 gamma 值系统?

0 投票
3 回答
692 浏览

machine-learning - 超参数优化随机搜索的改进

随机搜索是机器学习中超参数优化的一种可能性。我已经应用随机搜索来搜索具有 RBF 内核的 SVM 分类器的最佳超参数。除了连续的 Cost 和 gamma 参数之外,我还有一个离散参数以及对某些参数的等式约束。

现在,我想进一步开发随机搜索,例如通过自适应随机搜索。这意味着例如搜索方向或搜索范围的适配。

有人知道如何做到这一点或可以参考一些现有的工作吗?也欢迎其他改进随机搜索的想法。

0 投票
5 回答
10510 浏览

neural-network - 我们应该按什么顺序调整神经网络中的超参数?

我有一个非常简单的 ANN,它使用 Tensorflow 和 AdamOptimizer 来解决回归问题,现在我正在调整所有超参数。

目前,我看到了许多不同的超参数需要调整:

  • 学习率:初始学习率,学习率衰减
  • AdamOptimizer 需要 4 个参数(学习率、beta1、beta2、epsilon)所以我们需要调整它们 - 至少是 epsilon
  • 批量大小
  • nb 次迭代
  • Lambda L2-正则化参数
  • 神经元数量,层数
  • 隐藏层使用什么样的激活函数,输出层使用什么样的激活函数
  • 辍学参数

我有 2 个问题:

1)你有没有看到我可能忘记的其他超参数?

2)目前,我的调音是相当“手动”的,我不确定我是否以正确的方式做所有事情。是否有特殊的顺序来调整参数?例如,首先是学习率,然后是批量大小,然后......我不确定所有这些参数都是独立的——事实上,我很确定其中一些参数不是。哪些明显独立,哪些明显不独立?然后我们应该把它们调到一起吗?是否有任何论文或文章讨论以特殊顺序正确调整所有参数?

编辑:这是我得到的不同初始学习率、批量大小和正则化参数的图表。紫色曲线对我来说完全奇怪......因为成本下降的速度比其他曲线慢,但它被困在较低的准确率上。模型是否有可能陷入局部最小值?

准确性

成本

对于学习率,我使用了衰减:LR(t) = LRI/sqrt(epoch)

谢谢你的帮助 !保罗

0 投票
5 回答
10794 浏览

r - 在 R 中使用纯 ranger 包进行超参数调整

喜欢随机森林模型创建的游侠包的速度,但看不到如何调整 mtry 或树的数量。我意识到我可以通过插入符号的 train() 语法来做到这一点,但我更喜欢使用纯游侠带来的速度提升。

这是我使用 ranger 创建基本模型的示例(效果很好):

查看调整选项的官方文档,似乎 csrf() 函数可以提供调整超参数的能力,但我无法正确使用语法:

结果是:

而且我更喜欢使用 ranger 提供的常规(阅读:非 csrf)rf 算法进行调整。关于 Ranger 中任一路径的超参数调整解决方案的任何想法?谢谢!