ppgaluzio / MOBOpt

Multi-objective Bayesian optimization
MIT License
81 stars 23 forks source link

Acquision Function #17

Open yufeng0929 opened 1 year ago

yufeng0929 commented 1 year ago

Hello @ppgaluzio, I love your code of MOBOpt. It's very useful and help me a lot! But I also have a question. I know many MOBO models use 'acquision function' to select next point when iterating. However, I read your code and didn't find your 'acquision functions'. If your code has this, could you tell me where is it? If your code dosen't have 'acquision function', could you tell me what you use to replace 'acquision function' and its theory? Thanks for your help!

ppgaluzio commented 1 year ago

Thank you @yufeng0929 !

Yes, the code doesn't have the acquisition function clearly implemented, but it is possible to write the method in such terms. Here is how you would write the acquisition function in this case:

The method described in the manuscript can be interpreted as the maximization of an acquisition function $A (\vec x)$, given by:

$$ A(\vec x; t) = q \left( \frac{d{f}(\vec x; t) - \mu{f}(t)}{\sigma{f}(t)} \right) + (1-q) \left( \frac{d{x}(\vec x; t)-\mu{x}(t)}{\sigma{x}(t)} \right) \qquad \forall\; \vec x \in \chi_{t} $$

where $\chi_{t}$ is the Pareto Set of $\vec \eta(\vec x; t)$, and:

$$ \begin{aligned} d{f}(\vec x; t) &= \min{\tau\in{0,\ldots,t}}\left(\left|\vec f(\vec x)-\vec f(\vec x\,^{(\tau)})\right|\right) \ \mu{f}(t) &= \int{\chi{t}}d{f}(\vec x; t)p(\vec x)\,d\vec x \ \sigma{f}(t) &= \sqrt{\int{\chi{t}}(d{f}(\vec x; t) - \mu{f}(t))^{2}p(\vec x)\,d\vec x} \ d{x}(\vec x; t) &= \min_{\tau\in{0,\ldots,t}}\left(\left|\vec x-\vec x\,^{(\tau)}\right|\right) \end{aligned} $$

where $p(\vec x)$ is the density of $\vec x$ on $\chi{t}$, and the definitions to $\mu{x}(t)$ and $\sigma{x}(t)$ are analogous to those of $\mu{f}(t)$ and of $\sigma_{f}(t)$, respectively.

yufeng0929 commented 1 year ago

Thank you @yufeng0929 !

Yes, the code doesn't have the acquisition function clearly implemented, but it is possible to write the method in such terms. Here is how you would write the acquisition function in this case:

The method described in the manuscript can be interpreted as the maximization of an acquisition function A(x→), given by:

A(x→;t)=q(df(x→;t)−μf(t)σf(t))+(1−q)(dx(x→;t)−μx(t)σx(t))∀;x→∈χt

where χt is the Pareto Set of η→(x→;t), and:

df(x→;t)=minτ∈0,…,t(|f→(x→)−f→(x→,(τ))|)μf(t)=∫χtdf(x→;t)p(x→),dx→σf(t)=∫χt(df(x→;t)−μf(t))2p(x→),dx→dx(x→;t)=minτ∈0,…,t(|x→−x→,(τ)|)

where p(x→) is the density of x→ on χt, and the definitions to μx(t) and σx(t) are analogous to those of μf(t) and of σf(t), respectively.

Sorry for the late reply!@ppgaluzio
Thank you a lot for answering my question!I'm a beginner of MOBO, and I'm now using your code to deal with a three-objective engineering method. However, I have met a big problem of falling into local optimal solution. And I also tried to change q or p many times, but it didn't work. That's why I want to use acquision function. However I'm not very good at math in MOBO. So I'm a little confused about these formulas you sent me. Could you tell me which paper these formulas come from? And can these formulas be used into three-objective question? Because I think three-objcetive is a little different from two-objective. Or maybe could you tell me other ways to get away from the local optimal solution? :D Thanks again for your help!