¿No tiene sentido utilizar algoritmos de optimización basados en gradiente si solo puede proporcionar un gradiente numérico? Si no, ¿por qué proporcionar un gradiente numérico en primer lugar si es trivial realizar una diferenciación finita para la biblioteca de optimización en sí?
[EDITAR]
Solo para aclarar, mi pregunta es en un sentido más general que una aplicación específica. Aunque mi campo de aplicación es la optimización de probabilidad bajo varios marcos estadísticos.
Mi problema con la diferenciación automática es que siempre parece haber una trampa. O bien, la biblioteca AD no puede propagarse a las llamadas de la biblioteca externa (como BLAS) o tiene que volver a trabajar su flujo de trabajo tan drásticamente que hace que sea difícil lidiar con él ... especialmente si está trabajando con lenguajes sensibles al tipo. Mis quejas con AD son un tema completamente diferente. ¡Pero quiero creer!
Supongo que necesito formular mejor mi pregunta, pero estoy haciendo un mal trabajo al respecto. Si tengo la opción de usar un algoritmo de optimización sin derivadas o un algoritmo de optimización basado en derivadas con la advertencia de que solo puedo darle un gradiente numérico, ¿cuál será en promedio superior?