È inutile utilizzare algoritmi di ottimizzazione basati sul gradiente se è possibile fornire solo un gradiente numerico? In caso contrario, perché fornire innanzitutto un gradiente numerico se è banale eseguire una differenziazione finita per la libreria di ottimizzazione stessa?
[MODIFICARE]
Giusto per chiarire, la mia domanda è davvero in un senso più generale di un'applicazione specifica. Anche se il mio campo di applicazione sembra essere l'ottimizzazione della probabilità in vari contesti statistici.
Il mio problema con la differenziazione automatica è che sembra esserci sempre un problema. O la libreria AD non può propagarsi a chiamate di librerie esterne (come BLAS) o devi rielaborare il tuo flusso di lavoro in modo così drastico da renderlo un problema da gestire ... specialmente se stai lavorando con linguaggi sensibili al tipo. Le mie lamentele con AD sono del tutto separate. Ma io voglio credere!
Immagino di dover formulare meglio la mia domanda, ma sto facendo un cattivo lavoro. Se ho un'opzione per utilizzare un algoritmo di ottimizzazione privo di derivati o un algoritmo di ottimizzazione basato su derivati con l'avvertenza che posso solo dargli un gradiente numerico, quale in media sarà superiore?