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