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
我想找到特定函数的最佳超参数,我在 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