Ist es sinnlos, gradientenbasierte Optimierungsalgorithmen zu verwenden, wenn Sie nur einen numerischen Gradienten bereitstellen können? Wenn nicht, warum überhaupt einen numerischen Gradienten bereitstellen, wenn es trivial ist, eine endliche Differenzierung für die Optimierungsbibliothek selbst durchzuführen?
[BEARBEITEN]
Zur Verdeutlichung ist meine Frage in der Tat allgemeiner als eine spezifische Anwendung. Obwohl mein Anwendungsbereich zufällig die Wahrscheinlichkeitsoptimierung unter verschiedenen statistischen Rahmenbedingungen ist.
Mein Problem bei der automatischen Differenzierung ist, dass es immer einen Haken zu geben scheint. Entweder kann die AD-Bibliothek nicht an externe Bibliotheksaufrufe (wie BLAS) weitergegeben werden, oder Sie müssen Ihren Workflow so drastisch überarbeiten, dass es schwierig wird, damit umzugehen ... insbesondere, wenn Sie mit typsensitiven Sprachen arbeiten. Meine Probleme mit AD sind ein ganz anderes Thema. Aber ich möchte glauben!
Ich denke, ich muss meine Frage besser formulieren, aber ich mache einen schlechten Job. Wenn Sie die Option haben, entweder einen ableitungsfreien Optimierungsalgorithmus oder einen derivatbasierten Optimierungsalgorithmus mit der Einschränkung zu verwenden, dass ich ihm nur einen numerischen Gradienten geben kann, welcher ist im Durchschnitt überlegen?