Gradient Free Optimizer는 gradient를 구하고자 하는 function의 계산이 느리거나, domain이 continous하지 않을 때, 원하는 solution이 several minima가 있을 때 등등 여러 방면에서 필요하다.
이러한 Optimizer에는 아래와 같은 종류가 있다.
- Differential evolution
- Sequential quadratic programming
- FastGA
- Covariance matrix adaptation
- Population control methods for noise management
- Particle swarm optimization
[BasinCMA]
- Covariance Matrix Adaptation (CMA)
Gradient Free한 방법으로, parameter가 Gaussian distribution을 유지함. Loss에 따라서 Gaussian이 update됨.
CMA-ES(Evolutionary Search)는 quasi-Newton method로 inverse Hessian matrix를 배우는 것과 유사
단점: Solution에 가까워질수록, solution refinement가 느려짐
- BasinCMA
CMA update과 Adam update이 병행되는 구조
https://github.com/minyoungg/pix2latent/blob/master/pix2latent/optimizer/basincma_optimizer.py
[NeverGrad]
- 위와 같은 Gradient Free Optimizer를 구현한 플랫폼.
https://github.com/facebookresearch/nevergrad
[Reference]