Когда дело доходит до Autograd, я абсолютный новичок, поэтому мне кажется, что я делаю что-то совершенно очевидно не так. Однако я потратил целый день на борьбу с этим.
Я пытаюсь вычислить производную функции, которая включает обычный cdf. У меня не было успеха с Autograd, поэтому я разбил его на все более мелкие части, пока я не выделил источник ошибки как нормальный CDF. Вот минимальный рабочий пример:
import autograd.numpy as np
from autograd.misc.optimizers import adam, rmsprop, sgd
from autograd import grad
from autograd.scipy.stats import norm
def test_func(x,t):
return norm.cdf(x)
grad_test = grad(test_func)
def callback(params, t, g):
print(params, " Gradient: ", g, " Derivative: ", norm.pdf(params))
print(adam(grad_test, 0.0 ,num_iters = 10, step_size= 0.1, callback = callback))
Я знаю, что нет смысла оптимизировать CDF, я просто сделал это, чтобы получить результат обратного вызова, который ниже:
0.0 Gradient: 0.24197072451914337 Derivative: 0.398942280401
-0.09999999586726883 Gradient: 0.26608524890906193 Derivative: 0.396952547641
-0.20013469787000787 Gradient: 0.2897227684832687 Derivative: 0.391032156046
-0.30048876968878535 Gradient: 0.31236074851454854 Derivative: 0.38133185077
-0.40113882898768705 Gradient: 0.33345215596996947 Derivative: 0.368102181121
-0.5021500752550674 Gradient: 0.35244319911051986 Derivative: 0.351686233767
-0.6035729426432459 Gradient: 0.3687944858147128 Derivative: 0.332508890217
-0.7054397817605528 Gradient: 0.38200507149861374 Derivative: 0.311062576619
-0.8077615706004915 Gradient: 0.391638389745137 Derivative: 0.287889684926
-0.910524672771251 Gradient: 0.3973485394632615 Derivative: 0.263562137446
Градиенты, вычисленные Autograd, не соответствуют теоретической производной, представленной обычным PDF.
Я это неправильно реализую? Думаю, маловероятно, что в таком широко используемом пакете будет такая дыра. Как я могу использовать Autograd (или другие пакеты в Python), чтобы получить эффективные числовые производные функции, которая выводит скаляр.






Это было исправлено: См .: github.com/HIPS/autograd/issues/407