Downloads · 30 days
0
Eitanm/ddm-st-lans
ddm-st-lans is a machine learning model from Eitanm. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for onnx. The card lists the license as mit.
Note (2026-10-13): ddmnormalst.onnx and lan/ddmnormalst/ in this repo are the SUPERSEDED August KDE-trained network, kept for reproducibility only. See lan/ddmnormalst/README.md.
Downloads · 30 days
0
Access
Public
Updated Oct 13, 2026
Repo size
346 KB
Likes
0
Public
Click a slice to open those files.
.onnx336 KB · 77%
From the Hugging Face model README
Note (2026-10-13):
ddm_normal_st.onnxandlan/ddm_normal_st/in this repo are the SUPERSEDED August KDE-trained network, kept for reproducibility only. Seelan/ddm_normal_st/README.md.
Likelihood approximation network for the drift diffusion model whose trial non-decision
time is Uniform(t - st, t + st). st is the kernel half-width, so the kernel
standard deviation is st / sqrt(3).
Parameters, in the order the network expects them: v, a, z, t, st.
These bounds are the region the network saw. They are not modelling choices, and sampling outside them asks the network to extrapolate.
| param | low | high |
|---|---|---|
| v | -3.0 | 3.0 |
| a | 0.3 | 2.5 |
| z | 0.3 | 0.7 |
| t | 0.25 | 2.25 |
| st | 0.001 | 0.35 |
Fit st over the full training range, 0.001 to 0.35. Chains mix freely near the lower bound.
Five hidden layers of 100 units, tanh, linear output, trained to log-probability with Huber loss. Adam with a warm-up cosine schedule peaking at 1e-3, 20 epochs, batch 50,000, labels floored at -16.118, seed 11. Training data: 293 files of 5,000 parameter sets each (1.47 M sets), 2,000 rows per set, KDE labels from 200,000 simulations per set, dt 0.001. Parameter sets were drawn without reuse across files. Final validation loss 0.00622.
Requires an HSSM that registers ddm_uniform_st and whose admissibility guard understands st.
Until that lands upstream, install the branch and pass this file explicitly:
import hssm
from huggingface_hub import hf_hub_download
path = hf_hub_download("Eitanm/ddm-st-lans", "ddm_uniform_st.onnx")
m = hssm.HSSM(data=df, model="ddm_uniform_st", loglik=path,
loglik_kind="approx_differentiable")
Against a stock HSSM release the guard floors the [t - st, t] band, where this kernel
puts density. The fit biases t and never errors.
Checked by re-running the ddm_st tutorial (12 subjects × 300 trials, hierarchical) at true st 0.05, 0.13, 0.20,
0.25 and 0.30, and with each of v, a, z, t moved toward its edges. Every group-level parameter was recovered
in 15 of 16 settings. Three regions need care.
Small st (around 0.05 or below). At a true st of 0.05 the posterior peaks near 0.01 and reaches the true
value only through its upper tail (mean 0.023, 94% interval 0.002 to 0.058). The interval is honest; the mode and
the mean are not estimates of st here. Report the interval, and do not read "near zero" as "no variability".
High boundary separation (a near 1.9). st and t trade off. The data fit almost equally well with a narrow
st and later t, or a wider st and earlier t, and the posterior for both can have two peaks. Check the trace
plot for st and the group mean of t before reporting either.
Drift near zero (v around 0). st is underestimated (0.09 against a true 0.13), and the interval misses.
Near-chance choices carry little information about non-decision-time spread. Treat st from conditions with
chance-level accuracy as weakly informed.
A matching posterior predictive check does not confirm st. When st is misestimated, t and a absorb the
difference and the predicted RT distributions still match the data. A posterior predictive check rules out a gross
misfit; only parameter recovery on simulated data shows whether st is right.