MATLAB 超参数优化中的耦合变量

Coupled variables in hyperparameter optimization in MATLAB

我想找到特定函数的最佳超参数,我在 MATLAB 中使用 bayesopt 例程。

我可以像下面这样设置要优化的变量:

a = optimizableVariable('a',[0,1],'Type','integer');

但我有耦合变量,即其值取决于其他变量是否存在的变量,例如 a={0,1}, b={0,1} iff a=1。 意味着 b 对函数有影响 if a==1.

我考虑过创建一个包含所有可能性的唯一变量,即如果 a=0 则 c=1,如果 a=1、b=0 则 c=2,如果 a=1、b=c=3 0。问题是我对优化连续变量很感兴趣,上面的方法不再适用了。

我单独尝试了

b = a * optimizableVariable('b',[0,1],'Type','integer');

但是 MATLAB 抛出了一个错误。

Undefined operator '*' for input arguments of type 'optimizableVariable'.

几乎三个月后的今天,在 MATLAB 文档的深处,答案是使用约束变量。

https://www.mathworks.com/help/stats/constraints-in-bayesian-optimization.html#bvaw2ar