Czy nie ma sensu używać algorytmów optymalizacji opartych na gradiencie, jeśli można podać tylko gradient liczbowy? Jeśli nie, to po co podawać gradient liczbowy, jeśli przeprowadzanie różnicowania skończonego dla samej biblioteki optymalizacji jest banalne?
[EDYTOWAĆ]
Aby wyjaśnić, moje pytanie rzeczywiście ma bardziej ogólny sens niż konkretne zastosowanie. Chociaż moim obszarem zastosowania jest optymalizacja prawdopodobieństwa w różnych ramach statystycznych.
Mój problem z automatycznym różnicowaniem polega na tym, że zawsze wydaje się, że jest jakiś haczyk. Zarówno biblioteka AD nie może się propagować do zewnętrznych wywołań bibliotecznych (jak BLAS), albo musisz przeprojektować swój przepływ pracy tak drastycznie, że trudno jest sobie z tym poradzić ... szczególnie jeśli pracujesz z językami wrażliwymi na typy. Moje problemy z AD to zupełnie osobny problem. Ale chcę wierzyć!
Chyba muszę lepiej sformułować swoje pytanie, ale robię to źle. Jeśli masz opcję albo użycia algorytmu optymalizacji bez pochodnych, albo algorytmu optymalizacji opartego na pochodnych z zastrzeżeniem, że mogę dać mu tylko gradient liczbowy, który z nich będzie lepszy?