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

时间:2019-08-23 01:41:45

标签: matlab bayesian hyperparameters

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

我可以设置变量以进行优化,如下所示:

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

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

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

我独自尝试过某事

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

但是MATLAB抛出了一个错误。

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

1 个答案:

答案 0 :(得分:0)

几乎一天后的三个月,埋藏在MATLAB文档中,答案是使用约束变量。

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