QDax icon indicating copy to clipboard operation
QDax copied to clipboard

Add algorithm CMA-ME

Open felixchalumeau opened this issue 2 years ago • 1 comments

Related to issue #80

Done:

  • implement the improvment emitter
  • implement the random emitter
  • implement the opt emitter
  • implement the pool of emitters
  • example notebook
  • check perfs of the CMA ES optimizer
  • fix bug in CMA-MEGA (issue in improvment computation due to bad repertoire use)
  • getting similar perfs for the improv emitter on ragistrin :tada:
  • even outperforming with other params that seems to me more appropriate to the dimensions
  • cannot get comparable perfs of opt for same params but got better perfs with other params
  • non comparable for rnd emitter

Remaining tasks:

  • double check perfs (cannot get them atm)
  • perfs on sphere
  • perfs of rnd and opt
  • compare to pyribs implementation
  • refactor CMA-ES
  • refactor CMA-MEGA
  • refactor CMA-ME
  • add tests
  • clean notebooks
  • update documentation

Notes:

  • About the pool of homogeneous emitters and the scheduling rule "the emitter with the less emissions emits": quite soon, only one emitter is used, because at each reinit event, it's used until it reached the others number of emission. Plus, it's not supposed to provide any difference with having just one (considering this particular emitting rule).

felixchalumeau avatar Sep 06 '22 12:09 felixchalumeau

Codecov Report

Merging #86 (d44dc76) into develop (d7c6dc7) will increase coverage by 0.46%. The diff coverage is 97.92%.

@@             Coverage Diff             @@
##           develop      #86      +/-   ##
===========================================
+ Coverage    91.27%   91.74%   +0.46%     
===========================================
  Files           90       97       +7     
  Lines         5101     5403     +302     
===========================================
+ Hits          4656     4957     +301     
- Misses         445      446       +1     
Impacted Files Coverage Δ
tests/baselines_test/cmamega_test.py 98.36% <ø> (ø)
tests/core_test/cmaes_test.py 93.10% <93.10%> (ø)
qdax/core/emitters/cma_emitter.py 95.89% <95.89%> (ø)
qdax/core/emitters/cma_pool_emitter.py 97.77% <97.77%> (ø)
tests/baselines_test/cmame_test.py 98.46% <98.46%> (ø)
qdax/core/cmaes.py 98.19% <100.00%> (+8.58%) :arrow_up:
qdax/core/emitters/cma_improvement_emitter.py 100.00% <100.00%> (ø)
qdax/core/emitters/cma_mega_emitter.py 98.63% <100.00%> (ø)
qdax/core/emitters/cma_opt_emitter.py 100.00% <100.00%> (ø)
qdax/core/emitters/cma_rnd_emitter.py 100.00% <100.00%> (ø)
... and 2 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

codecov-commenter avatar Sep 06 '22 12:09 codecov-commenter