mlrMBO
mlrMBO copied to clipboard
Why is interleave.random.points an integer?
This could boil down to a feature request or simply a request for more detailed documentation. I'm looking at how interleave.random.points gets used in setMBOControlInfill
First, checking my understanding; interleave.random.points
gets used during regular sequential optimization (not during initialization). Specifically, 10 regular iterations of optimization with interleave.random.points = 0
corresponds to 40 iterations with with interleave.random.points = 3
because it would insert 3 random steps after every MBO step. Is this basically correct?
Second, why restrict interleave.random.points
to be an integer? what if I want a random step only about 1/3rd of the time? At very least, this could be implemented as a coin flip.
It is correct but I would not refer to it as steps. Because in mlrMBO one loop is the proposal and the evaluation of those proposals. We just add e.g. 3 random points to the proposals and in the next step evaluate all proposals (which can be done in parallel and maybe that's why these are no single steps). However, this is just naming.
Regarding your feature request. Personally I don't even use the interleave.random.points
option and I don't know of any case where interleaving random points actually improved the performance of MBO. Otherwise it is a feasible feature request.
That all make sense, thanks! I suppose a more general form of this feature request is to create a way to interleave arbitrary mixtures of infill criteria, something like crit = makeMBOInfillMixture(random = p1, EI = p2, AEI = p3, CB = p4, ...)
where p1, p2, ...
are relative frequencies of using each method. But, as you've observed with interleave.random.points
, maybe such a generalization is not worth the weight of its complexity.
I like this more general approach. It's an interesting thought and also makes sense as I have observed that some infill criteria do work better on certain problems than others. Therefore it makes sense to mix them. In contrast the random search is always inferior (except on some very ill behaving functions) so the motivation to blend it in is not so high.