Eval 02: Autodiff vs Calculus#

Validates that PyTorch autodiff computes correct scores and Hessians by comparing against closed-form calculus formulas.

Configuration#

Parameter

Value

Seed

42

Trials

20

Families

12

Results#

Part 1: Oracle Comparison (7 families with closed-form)#

Family

Score Error

Hessian Error

Status

linear

0.00e+00

0.00e+00

PASS

logit

1.67e-16

1.11e-16

PASS

poisson

1.74e-09

2.57e-09

PASS

gamma

2.22e-16

4.44e-16

PASS

gumbel

1.11e-16

2.22e-16

PASS

weibull

8.88e-16

7.11e-15

PASS

negbin

3.33e-16

5.55e-16

PASS

Result: 7/7 PASS

Part 2: Autodiff-Only (5 families without closed-form)#

Family

Gradient Norm

Hessian Symmetry

Status

tobit

PASS

gaussian

PASS

probit

PASS

beta

PASS

zip

PASS

Result: 5/5 PASS

Part 3: Fitted θ̂ (7 families)#

Tests autodiff on neural network outputs (not just oracle θ*).

Result: 7/7 PASS

Part 4: Package Integration (12 families)#

Tests the full family.gradient() and family.hessian() methods.

Result: 12/12 PASS

Summary#

Part

Tests

Result

Oracle Comparison

7

7/7 PASS

Autodiff-Only

5

5/5 PASS

Fitted θ̂

7

7/7 PASS

Package Integration

12

12/12 PASS

Total

31

31/31 PASS

Key Findings#

  • Autodiff matches calculus to machine precision (< 1e-14)

  • Hessians are symmetric as expected

  • Works on both oracle θ* and fitted θ̂

Run Command#

python3 -m evals.eval_02_autodiff 2>&1 | tee evals/reports/eval_02_$(date +%Y%m%d_%H%M%S).txt