Coder Social home page Coder Social logo

Comments (4)

Balandat avatar Balandat commented on April 27, 2024

So what you're looking at is a hierarchical search space. We have some (basic) support for this (

Ax/ax/core/parameter.py

Lines 515 to 516 in fcc5178

dependents: Optional mapping for parameters in hierarchical search
spaces; format is { value -> list of dependent parameter names }.
,
class HierarchicalSearchSpace(SearchSpace):
), but I'm not sure how such a setup would interact with SEBO.

@saitcakmak, @dme65 do you have a sense of this?

from ax.

saitcakmak avatar saitcakmak commented on April 27, 2024

I don't know how well HSS would interact with SEBO for this use case. Under the hood, the acquisition function will be optimized in the flattened space without fixing the values of x2 & x3, so these will be included in the sparsity computations as well.

Since the conditional structure here is super simple, you could try a manual approach here. Let Ax generate a candidate with all three parameters optimized and compare the acquisition value of this candidate to x1=x2=x3=0. You can then evaluate the one that performs better. But this would not scale too well beyond a few parameters. You could also do similar things using the fixed_features argument, which would let you fix x2=x3=0 and optimize x1 alone while generating the candidate.

Fixed features: https://github.com/facebook/Ax/blob/main/ax/modelbridge/base.py#L753-L755
Checking acquisition value: https://github.com/facebook/Ax/blob/main/ax/modelbridge/torch.py#L463

from ax.

dme65 avatar dme65 commented on April 27, 2024

Assuming the target_point in SEBO is 0, this isn't going to work out of the box. The main issue is that x1=0 implies x2=x3=0 needs to be incorporated into the sparsity objective (penalty) and we don't expose any easy ways of doing that.

Your best bet is probably to find a way to optimize the acquisition function for each path in the hierarchical search space structure and then pick the best (this is what @saitcakmak suggested above). One thing to watch out for in that setting is that you may end up with x1=0 but not x2=x3=0 in the case where you optimize all parameters.

from ax.

yitingz avatar yitingz commented on April 27, 2024

@dme65 @saitcakmak @Balandat Thank you so much for your helpful inputs. When I use SEBO to optimize all parameters, it works well for most of the time and sometimes may have results with x1 = 0 but not x2 = x3 = 0. (main issue remaining for my problem) I will try to study more on this.

from ax.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.