Skip to content

Commit 57452f3

Browse files
authored
Update README.md
(Fixed links by using raw GitHub links -- not ideal)
1 parent a0ea02b commit 57452f3

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ This repository contains the Haskell prototype that accompanies the paper "[ADEV
44

55
## Overview
66

7-
![Overview of ADEV](./figures/adev-diagram.png)
7+
![Overview of ADEV](https://github.com/probcomp/adev/blob/main/figures/adev-diagram.png)
88
ADEV is a method of automatically differentiating loss functions defined as *expected values* of probabilistic processes. ADEV users define a _probabilistic program_ $t$, which, given a parameter of type $\mathbb{R}$ (or a subtype), outputs a value of type $\widetilde{\mathbb{R}}$,
99
which represents probabilistic estimators of losses. We translate $t$ to a new probabilistic program $s$,
1010
whose expected return value is the derivative of $t$’s expected return value. Running $s$ yields provably unbiased
1111
estimates $x_i$ of the loss's derivative, which can be used in the inner loop of stochastic optimization algorithms like ADAM or stochastic gradient descent.
1212

1313
ADEV goes beyond standard AD by explicitly supporting probabilistic primitives, like `flip`, for flipping a coin. If these probabilistic constructs are ignored, standard AD may produce incorrect results, as this figure from our paper illustrates:
14-
![Optimizing an example loss function using ADEV](./figures/example.png)
14+
![Optimizing an example loss function using ADEV](https://github.com/probcomp/adev/blob/main/figures/example.png)
1515
In this example, standard AD
1616
fails to account for the parameter $\theta$'s effect on the *probability* of entering each branch. ADEV, by contrast, correctly accounts
1717
for the probabilistic effects, generating similar code to what a practitioner might hand-derive. Correct

0 commit comments

Comments
 (0)