Convex Bayesian Potential Head / conditional_bayesian_potential_track.py
Mechanism confirmed, baseline not beaten
1import numpy as np
2META={'name':'conditional_bayesian_potential','domain':'probabilistic-inverse','description':'Noisy inverse problem with a two-component latent prior and normalized conditional posterior potential.'}
3def get_dataset(seed,n_train=400,n_test=400):
4 def sample(n,rng):
5 z=rng.normal(size=n)
6 x=np.where(rng.random(n)<.55,-.9+.55*z,.9+.38*z)
7 y=x+.48*rng.normal(size=n)
8 return y[:,None].astype('float32'),x[:,None].astype('float32')
9 xtr,ytr=sample(n_train,np.random.default_rng(int(seed)))
10 xte,yte=sample(n_test,np.random.default_rng(int(seed)+10000))
11 return {'xtr':xtr,'ytr':ytr,'xte':xte,'yte':yte,'task':'regression','metric':'mse','out_dim':1,'input_shape':(1,)}