离散和连续参数混合的最小化算法?

机器算法验证 机器学习 数据挖掘 算法
2022-04-16 03:11:46

我有一个最小化问题,其中参数是整数和标量的混合。一些整数的范围很小,大约为 0-10,但其他整数的范围为数千。给出一些上下文,这些都是机器学习算法的超参数。在给定参数集的每次迭代中,都会进行一系列 CV 和/或引导测试以评估参数集的优点。

目前,我正在使用标准的罐装最小化算法(特别是 Nelder-Mead 单纯形法)来执行此操作,并通过对每个值进行两次迭代来将整数变量伪装成连续的,一次是下限,另一次是连续值的上限并进行线性插值。它是粗糙且低效的,但似乎至少“起作用”,因为算法最终会收敛。

正如你可以想象的那样,评价函数迭代是昂贵的,所以我不想像这个过程所需要的那样浪费。我不知道处理这类问题的标准方法,但我无法想象它没有得到解决。这类问题是否有众所周知的算法和实现?

1个回答

听起来您需要一种无导数的方法(因为您似乎无法为目标函数提供梯度)。我猜您的参数空间没有限制,因为您当前使用的是 Nelder-Mead。我不确定您使用的是什么软件,但您应该查看“根据 GNU 宽通用公共许可证免费分发”的NOMAD 。NOMAD 处理整数和/或实变量的非线性函数。在 R 中,crs包提供了一个接口,请参见 this