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

Add a multiobjective adaptation for DE #789

Merged
merged 15 commits into from
Aug 11, 2020
Merged

Add a multiobjective adaptation for DE #789

merged 15 commits into from
Aug 11, 2020

Conversation

jrapin
Copy link
Contributor

@jrapin jrapin commented Aug 10, 2020

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Motivation and Context / Related issue

Our DE implementation performs really poorly on dynamic functions, which arise when doing multiobjective optimization. This update make it work in this case by using the pareto front information.

What that changes. In case of multiobjective:

  • best is sampled in the pareto front if the initial point is not on the pareto already (otherwise, no best)
  • a and b are sampled on the pareto front as well if there are more than 3 points there
  • the child replaces its parent with probability "the ratio of losses which are lower for the child than for the parent".

How Has This Been Tested (if it applies)

Checklist

  • The documentation is up-to-date with the changes I made.
  • I have read the CONTRIBUTING document and completed the CLA (see CLA).
  • All tests passed, and additional code has been covered with new tests.

@jrapin jrapin requested a review from teytaud August 10, 2020 14:10
@jrapin jrapin self-assigned this Aug 10, 2020
@facebook-github-bot facebook-github-bot added the CLA Signed Do not delete this pull request or issue due to inactivity. label Aug 10, 2020
@jrapin jrapin added Difficulty: Medium Priority: Medium Type: Enhancement New feature or request and removed CLA Signed Do not delete this pull request or issue due to inactivity. labels Aug 10, 2020
@jrapin
Copy link
Contributor Author

jrapin commented Aug 10, 2020

This is indeed much faster to converge: blue with adpatation, orange without, best solution at (80, 100)
Screen Shot 2020-08-10 at 4 43 46 PM

@jrapin
Copy link
Contributor Author

jrapin commented Aug 10, 2020

At first sight, it looks roughly equivalent (and maybe more stable) than with mono objective:

  • red and orange as multiobjective
  • blue and green as monoobjective: one of them is completely lost

Screen Shot 2020-08-10 at 4 53 03 PM

@jrapin
Copy link
Contributor Author

jrapin commented Aug 10, 2020

It seems (after few repetitions) to work alright on the new_multiobjective_example benchmarks (note that cigar functions are removed to avoid bad initializations, DE-noadapt and TwoPointsDE-noadapt are without adaptation):
xpresults_dimension6,namesphere,sphere,sphere,num_workers100
xpresults_dimension7,namesphere,sphere,num_workers1
xpresults_dimension7,namesphere,hm,num_workers100

@jrapin
Copy link
Contributor Author

jrapin commented Aug 11, 2020

Consolidated results show a very clear improvement over non-adapted DE, and all other optimizers for that matter (none of which is taking into account the pareto front for the time being).
xpresults_dimension7,namesphere,hm,num_workers100
xpresults_dimension6,namesphere,sphere,hm,num_workers100
xpresults_dimension6,namesphere,sphere,hm,num_workers1
xpresults_dimension6,namesphere,sphere,sphere,num_workers100
xpresults_dimension7,namesphere,hm,num_workers1
xpresults_dimension7,namesphere,sphere,num_workers1
xpresults_dimension7,namesphere,sphere,num_workers100
xpresults_dimension6,namesphere,sphere,sphere,num_workers1
xpresults_all
fight_all

@jrapin jrapin merged commit e22212d into master Aug 11, 2020
@jrapin jrapin deleted the de_mobj branch August 11, 2020 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants