Closed jkterry1 closed 3 years ago
Hello,
basically universally slightly helpful
in practice, it mostly depends on the other hyperparameters (in my own experience, when doing hyperparameter optimization with ortho_init
as an hyperparam, it was not an important one).
There are also other reasons:
ortho_init
does not only do orthogonal initialization, there is also some scaling for the value function last layer, setting it to False
removes one trick (the less tricks the better, especially if it does not affect performance), see https://github.com/DLR-RM/stable-baselines3/blob/master/stable_baselines3/common/policies.py#L514ortho_init
scaling is fixed (and I suspect that this likely not work well for wider/smaller architectures compared to the defaults)ortho_init=False
reduces the search spaceThanks a ton
It's my understanding that orthogonal initialization is basically universally slightly helpful and that this result has been verified in the literature, so it seems odd to disable it for hyperparameter tuning.