Skip to content

Commit 71060df

Browse files
committed
Revert divergences PR
1 parent 5325851 commit 71060df

File tree

4 files changed

+15
-23
lines changed

4 files changed

+15
-23
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ Currently Implemented
1616
- Leapfrog integrator
1717
- Hamiltonian Monte Carlo
1818
- Some log probabilities (normal, multivariate normal, mixtures, funnel)
19-
- Divergences
2019

2120
Roadmap
2221
-------
2322

23+
- Divergences
2424
- Mass matrix adaptation
2525
- Diagnostics
2626
- [NUTS](https://arxiv.org/abs/1111.4246)

minimc/minimc.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,14 @@ def hamiltonian_monte_carlo(
7676
start_log_p = np.sum(momentum.logpdf(p0)) - initial_potential
7777
new_log_p = np.sum(momentum.logpdf(p_new)) - final_V
7878
energy_change = new_log_p - start_log_p
79-
p_accept = min(1, np.exp(energy_change))
8079

81-
if abs(energy_change) < max_energy_change:
82-
# Check Metropolis acceptance criterion
83-
if np.random.rand() < p_accept:
84-
samples.append(q_new)
85-
initial_potential = final_V
86-
initial_potential_grad = final_dVdq
87-
else:
88-
samples.append(np.copy(samples[-1]))
80+
# Check Metropolis acceptance criterion
81+
p_accept = min(1, np.exp(energy_change))
82+
if np.random.rand() < p_accept:
83+
samples.append(q_new)
84+
initial_potential = final_V
85+
initial_potential_grad = final_dVdq
8986
else:
90-
# Divergence encountered
9187
samples.append(np.copy(samples[-1]))
9288

9389
if idx < tune - 1:

minimc/minimc_slow.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,14 @@ def hamiltonian_monte_carlo(
7676
energy_change = start_log_p - new_log_p
7777
p_accept = np.exp(energy_change)
7878

79-
if abs(energy_change) < max_energy_change:
80-
if np.random.rand() < p_accept:
81-
samples.append(q_new)
82-
accepted.append(True)
83-
else:
84-
if do_reject:
85-
samples.append(np.copy(samples[-1]))
86-
else:
87-
samples.append(q_new)
88-
accepted.append(False)
79+
if np.random.rand() < p_accept:
80+
samples.append(q_new)
81+
accepted.append(True)
8982
else:
90-
samples.append(np.copy(samples[-1]))
83+
if do_reject:
84+
samples.append(np.copy(samples[-1]))
85+
else:
86+
samples.append(q_new)
9187
accepted.append(False)
9288
p_accepts.append(p_accept)
9389

test/test_minimc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,4 @@ def test_hamiltonian_monte_carlo_mv():
7979
)
8080
assert samples.shape[0] == 100
8181
assert_allclose(mu, np.mean(samples, axis=0), atol=0.3)
82-
assert_allclose(cov, np.cov(samples.T), atol=0.3)
82+
assert_allclose(cov, np.cov(samples.T), atol=0.5)

0 commit comments

Comments
 (0)