Note (2026-10-13): ddm_normal_st.onnx and lan/ddm_normal_st/ in this repo are the SUPERSEDED August KDE-trained network, kept for reproducibility only. See lan/ddm_normal_st/README.md.

ddm_uniform_st โ€” LAN for the DDM with uniform non-decision-time variability

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.

Training box

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.

Architecture and training

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.

Use

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.

Known limits

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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support