Open garam-kim1 opened 2 years ago
Unfortunately we have the default
decay_coef = optimizer_config.get("center_lr_decay_coef", 1.0)
effectively deactivating decay_coef and not a single config in PGPE configs changes this.
So there is no easy way to check if the proposed change is a regression. But when I created the C++ PGPE implementation wrapped in fpgpec.py I implemented the C++ code exactly as you propose now, see: pgpe.cpp.
Do you have a benchmark problem actually using decay_coef?
Bug
When use adam with PGPE this code
means adam t will increase after every self._lr_decay_steps. And it means mhat and vhat will not work as moving average because
(1 - jnp.asarray(b1, m.dtype) ** (i + 1))
will be very small always. (bellow is adam update code)Suggestion
I think it is better to change this code to
and to remove self._lr_decay_steps at