问题标签 [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.
python - 在 R^n 中对立方体/球体进行网格搜索
R^n
我正在尝试在n
未知的球体上实现网格搜索(在 Python 中,如果重要的话) 。
输入包括球体的半径和中心,以及theta
控制网格分辨率的超参数。我想将这个球体中的每个点表示为这三个参数的函数。
我也愿意考虑立方体搜索,只迭代立方体的面。(即,迭代L_inf
球体)
如果我知道 n=2,我会做的是:
由于n
可以任意大,我正在寻找一种有效地迭代球体\立方体的方法。
有任何想法吗?
++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++
我最终使用了一个修改后的版本:
输出图:
另一种选择是在 sphere 上生成 均匀分布的样本。请注意,样本数控制点的“密度”(或预期密度):
最糟糕的方法(就简单性和效率而言)是使用n-1 角度的枚举在球体上生成点。效率低下是因为需要计算产品sin
并且cos
经常(尽管这也可能被黑客入侵)
hyperparameters - LSSVM 超参数调优
我想通过在 matlab 中使用 tunelssvm 来设置 LSSVM 超参数的初始值,如下所示:
在代码中,我希望 gam 和 sig2 的起始值为 1。但是,我为 sig2 得到的结果是 0.005... 谁能帮助我如何设置起始值或使它们在范围内?
python - 将 Keras 与 Spearmint 集成的问题
当我使用 spearmint 优化 Keras 模型的超参数时,它第一次运行良好。但是从第二份工作开始,它总是会引发以下错误。
我正在使用以下代码加载预先创建的训练数据和测试数据的 numpy 数组。以下参数由优化 python 脚本传递。但是,如果在没有留兰香的情况下运行,这组参数可以正常工作。
machine-learning - 参数选择和k折交叉验证
我有一个数据集,需要对整个数据集做交叉验证,比如10折交叉验证。我想使用带有参数选择的径向基函数 (RBF) 内核(RBF 内核有两个参数:C 和 gamma)。通常,人们使用开发集选择 SVM 的超参数,然后使用基于开发集的最佳超参数并将其应用于测试集进行评估。但是,在我的例子中,原始数据集被划分为 10 个子集。随后,使用在其余 9 个子集上训练的分类器对一个子集进行测试。很明显,我们没有固定的训练和测试数据。在这种情况下我应该如何进行超参数选择?
matlab - 使用连续/整数参数和约束进行优化
我正在使用不同的分类器来解决由两个类组成的分类问题。当然,我必须调整我想作为优化问题处理的超参数。成本函数是(交叉验证的)准确度。我有以下三个不同的优化问题:
连续参数 + 1-2 个整数值参数进行优化(也许整数值参数可以被删除和单独优化) 参数的边界约束(下界和上限) 一些参数的等式约束 => sum(w(i) ) = 1 对于权重参数 w(i),其中 0 <= w(i) <= 1。权重用于 SVM 的加权 RBF 内核。
仅连续参数 对参数的约束
仅限整数值参数 对参数的约束
我已经使用 Matlab 的 fminsearch 函数开始使用 Nelder-Mead 了,但这对于 1. 和 3 来说似乎不是最佳的。对于这三种类型,您建议使用哪些优化程序?一种可能性是使用 Matlab 的 ga 函数进行混合整数编程,但根据文档,等式约束可能是一个问题。
另外,我有一个距离度量参数,它是一个字符串(例如欧几里德距离等)。我应该在优化过程中将其视为整数吗?例如,将欧几里得映射到 1,将马氏映射到 2 等。
最重要的是,另一个问题是局部最小值。如何有效地解决这个问题(不使用有点耗时的随机重启)?
machine-learning - 创建具有已知 SVM 参数的合成数据集
我想创建一个包含 2 个类和 3 个特征的合成数据集,用于测试具有 RBF 内核的 SVM 分类器的超参数优化技术。超参数是 gamma 和 C(成本)。
我创建了我当前的 3D 合成数据集,如下所示:
我通过分别具有均值 (1,0,0) 和 (0,1,0) 以及单位方差的多元正态分布进行采样,为每个类创建了 10 个基于点。
我通过随机选择一个基点,然后从平均值等于所选基点和方差 I/5 的正态分布中采样一个新点,为每个类添加了更多点。
如果我可以从数据集中(在运行 SVM 之前)确定最佳 C 和 gamma,那将是一件非常酷的事情,这样我就可以查看我的优化技术是否最终为我提供了最佳参数。
是否有可能从上述合成数据集中计算出最佳的 gamma 和 C 参数?
或者有没有办法创建一个已知最佳 gamma 和 C 参数的合成数据集?
machine-learning - 如何在使用带有 RBF 内核的 SVM 的系统之间进行适当的比较?
在比较使用 SVM 和 RBF 内核的系统时,我们应该对所有系统使用相同的 C 和 gamma(固定值,例如 C=10,gamma=0.1)还是进行超参数翻转并为每个系统选择最佳的 C 和 gamma 值系统?
machine-learning - 超参数优化随机搜索的改进
随机搜索是机器学习中超参数优化的一种可能性。我已经应用随机搜索来搜索具有 RBF 内核的 SVM 分类器的最佳超参数。除了连续的 Cost 和 gamma 参数之外,我还有一个离散参数以及对某些参数的等式约束。
现在,我想进一步开发随机搜索,例如通过自适应随机搜索。这意味着例如搜索方向或搜索范围的适配。
有人知道如何做到这一点或可以参考一些现有的工作吗?也欢迎其他改进随机搜索的想法。
neural-network - 我们应该按什么顺序调整神经网络中的超参数?
我有一个非常简单的 ANN,它使用 Tensorflow 和 AdamOptimizer 来解决回归问题,现在我正在调整所有超参数。
目前,我看到了许多不同的超参数需要调整:
- 学习率:初始学习率,学习率衰减
- AdamOptimizer 需要 4 个参数(学习率、beta1、beta2、epsilon)所以我们需要调整它们 - 至少是 epsilon
- 批量大小
- nb 次迭代
- Lambda L2-正则化参数
- 神经元数量,层数
- 隐藏层使用什么样的激活函数,输出层使用什么样的激活函数
- 辍学参数
我有 2 个问题:
1)你有没有看到我可能忘记的其他超参数?
2)目前,我的调音是相当“手动”的,我不确定我是否以正确的方式做所有事情。是否有特殊的顺序来调整参数?例如,首先是学习率,然后是批量大小,然后......我不确定所有这些参数都是独立的——事实上,我很确定其中一些参数不是。哪些明显独立,哪些明显不独立?然后我们应该把它们调到一起吗?是否有任何论文或文章讨论以特殊顺序正确调整所有参数?
编辑:这是我得到的不同初始学习率、批量大小和正则化参数的图表。紫色曲线对我来说完全奇怪......因为成本下降的速度比其他曲线慢,但它被困在较低的准确率上。模型是否有可能陷入局部最小值?
对于学习率,我使用了衰减:LR(t) = LRI/sqrt(epoch)
谢谢你的帮助 !保罗
r - 在 R 中使用纯 ranger 包进行超参数调整
喜欢随机森林模型创建的游侠包的速度,但看不到如何调整 mtry 或树的数量。我意识到我可以通过插入符号的 train() 语法来做到这一点,但我更喜欢使用纯游侠带来的速度提升。
这是我使用 ranger 创建基本模型的示例(效果很好):
查看调整选项的官方文档,似乎 csrf() 函数可以提供调整超参数的能力,但我无法正确使用语法:
结果是:
而且我更喜欢使用 ranger 提供的常规(阅读:非 csrf)rf 算法进行调整。关于 Ranger 中任一路径的超参数调整解决方案的任何想法?谢谢!