我想为特定功能找到最佳的超参数,我在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'.
答案 0 :(得分:0)
几乎一天后的三个月,埋藏在MATLAB文档中,答案是使用约束变量。
https://www.mathworks.com/help/stats/constraints-in-bayesian-optimization.html#bvaw2ar