neuroevolution-ai / NeuroEvolution-CTRNN_new

MIT License
3 stars 3 forks source link

new optimizer #15

Open bjuergens opened 3 years ago

bjuergens commented 3 years ago

This issue is not a specific todo. It's a place to gather idea for optimizers to implement next

https://github.com/ShawK91/Evolutionary-Reinforcement-Learning

ERL sieht sehr relevant aus. Wir sollten es zumindestens zum Laufen bringen und in Zukunft als Referenz benutzen.

Außerdem sollten wir schauen, ob wir einige der dort verwendeten Techniken auch bei uns einbauen können. Im Idealfall könnten wir vielleicht sogar ERL als Optimizer bei uns einbauen.

bjuergens commented 3 years ago

alternative: optimizer von BackToBasic verwenden

bjuergens commented 3 years ago

alternative: salimans17

bjuergens commented 3 years ago

Bevor ein neuer optimizer eingebaut wird, sollten die alten optimizer refactort werden.

context: https://github.com/neuroevolution-ai/NeuroEvolution-CTRNN_new/pull/38/files/54c11d68d4601d11814cd0fc562983a38b046b3a#r546229957

bjuergens commented 3 years ago

https://github.com/neuroevolution-ai/NeuroEvolution-CTRNN_new/pull/38/files/54c11d68d4601d11814cd0fc562983a38b046b3a#r545827517

Frage: Die Checkpoint Dicts unterscheiden sich bei Mu+Lambda und CMA-ES, z.B. wird bei Mu+Lambda strategy=None und bei CMA-ES strategy=toolbox.strategy gesetzt, ist das gewollt? Wenn ja, warum?

Bei CMA-ES wird der aktuelle state des optimizers (z.B. die covarianzmatrix) in toolbox.strategy gespeichert, Bei Mu+Lambda wird die aktuelle strategie durch die aktuelle parent-population gespeichert. iirc, dann wird bei CMA ES die population aus dem checkpoint eigentlich gar nicht verwendet.

Also eigentlich könnte man den key population aus dem checkpoint entfernen und bei mulambdaES die population als strategie abspeichern.