Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Definition of "compositional" in "compositional optimizers" #15

Closed
sgbaird opened this issue Apr 5, 2022 · 2 comments
Closed

Definition of "compositional" in "compositional optimizers" #15

sgbaird opened this issue Apr 5, 2022 · 2 comments

Comments

@sgbaird
Copy link

sgbaird commented Apr 5, 2022

At one point, I may have understood this, but I find myself often wondering and asking again: what does "compositional" in "compositional optimizer" refer to? Part of my confusion probably stems from my materials informatics background, where composition often refers to the chemical make-up (i.e. chemical formula) of a particular compound. In other cases, it just implies that the contribution of individual components sums to one.

https://github.com/huawei-noah/HEBO/tree/master/CompBO

@AntGro
Copy link
Collaborator

AntGro commented Apr 6, 2022

Hi! "Compositional" in "compositional optimizer" refers to the nested form of the objective function.
Consider the following optimisation problem: max_x E[f(E[g(x)])] where E denotes expected value.
A "simple" optimiser (e.g. Adam, Adagrad...) would deal with that problem by considering f(E[g(x)]) := h(x) and solve: max_x E[h(x)], while a "compositional" optimiser (e.g. CAdam) will exploit the nested form explicitly (working with f and g) to perform the optimisation.

Compositional optimiser --> exploits compositional form of the objective function.

@AntGro AntGro closed this as completed Apr 6, 2022
@sgbaird
Copy link
Author

sgbaird commented Apr 6, 2022

@AntGro wonderful! Thanks so much for clarifying this for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants