NOMAD-EEG: Native Omni-Montage Adaptive Diffusion
Organizations: Department of Electrical and Computer Engineering, Lebanese American University, Byblos, Lebanon · Institute of Applied Artificial Intelligence, TÉLUQ University, Montreal, Canada
Abstract
Purpose. Electroencephalography (EEG) montages, channel counts and recording lengths vary widely, but most EEG foundation models are bound to the channel set and input length they were trained on. We aimed to build a generative EEG foundation model independent of the number, identity and order of electrodes and of the input length. Methods. NOMAD-EEG is a 12.0 M-parameter diffusion model that alternates state-space layers along time, without patches, with attention across electrodes identified only by their 3D scalp position. It was pre-trained on 147 h of unlabelled EEG from a single corpus and evaluated with frozen linear probes on ten datasets with 1 to 64 electrodes against seven foundation models run under one protocol, and on two unseen populations. Results. Despite its small size (12.0 M parameters against 69 M for REVE) and single pre- training corpus, NOMAD-EEG outperformed all seven foundation models on EEGMMIDB mo- tor imagery (balanced accuracy 0.442), Siena seizure detection (macro F1 0.622) and Bonn seizure detection (AUROC 0.999), had the highest accuracy of the seven compared models on TUEP epilepsy diagnosis (0.640) and, after fine-tuning, the highest \k{appa} (0.635) and weighted F1 (0.814) on TUEV event classification. It was the best of five models on P300 detection in autism with an unseen eight-electrode montage (AUROC 0.718). With only 5 of 19 electrodes, its mean AUROC fell only from 0.942 to 0.891. Conclusion. Identifying electrodes by position and modelling time without patches let one small model, pre-trained on one corpus, outperform much larger EEG foundation models on seizure detection, epileptiform event classification, epilepsy diagnosis and motor imagery.
Figures & tables
| Model | Objective | Channel identity | Any set? | Order-free? | Time handling |
|---|---|---|---|---|---|
| NOMAD-EEG (ours) | Diffusion | 3D coordinates (Fourier), every block | Yes | Yes | 20 ms steps, no patches, no length cap |
| REVE [ 12 ] | Masked AE | 3D coordinates + patch index | Yes | Yes | 1 s patches, full attention |
| LUNA [ 13 ] | Masked recon. | 3D coordinates (NeRF-style) | Yes | Yes | Patches; channels compressed to queries |
| BrainOmni [ 14 ] | Tokeniser + masked | Sensor position, orientation, type | Yes | Yes | Windows; channels compressed |
| DIVER-0 [ 25 ] | Masked recon. | Attention bias, no coordinates | Yes | Yes | 1 s patches |
| LaBraM [ 2 ] | Masked codes | Learned embedding per name | Vocabulary | Yes | 1 s patches, 16 patches |
| Dataset | Task | Classes | Channels | Segment | Train / val / test |
|---|---|---|---|---|---|
| TUAB | abnormal EEG | 2 | 21 | 5 s | 100,000 / 20,000 / 50,000 |
| TUSZ | seizure | 2 | 21 | 5 s | 100,000 / 20,000 / 50,000 |
| TUEV | EEG events | 6 | 21 | 5 s | 83,932 (5-fold CV) / 29,421 |
| TUEP | epilepsy diagnosis | 2 | 19 | 5 s | 12,000 from 200 patients (5-fold CV) |
| Siena | seizure | 2 | 21 | 5 s | 74,512 / 8,279 / 18,729 |
| Bonn | seizure | 2 | 1 | 5 s | 360 / 40 / 100 |
| NOMAD-EEG (Base) | NOMAD-EEG-Large | |
| Parameters | 12.0 M | 67.6 M |
| Width / blocks / heads | 256 / 16 / 4 | 512 / 24 / 8 |
| Feature dimension | 10,240 | 20,480 |
| Pre-training data | 147 h, 1 corpus | 6,984 h, 7 corpora |
| Montages | 1 (21 electrodes) | 38 channel groups, 1–62 electrodes |
| Electrodes per sample | 21 | random subset of 2–32 |
| Model | Dim | AUROC | PR-AUC | Bal. acc. | Macro F1 |
|---|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.838 [0.834, 0.842] | 0.820 | 0.770 | 0.771 |
| fine-tuned | — | 0.833 [0.830, 0.837] | 0.785 | 0.770 | 0.771 |
| EEGDM [ 9 ] | 2,560 | 0.869 [0.865, 0.872] | 0.862 | 0.792 | 0.792 |
| REVE [ 12 ] | 512 | 0.870 [0.867, 0.873] | 0.880 | 0.800 | 0.802 |
| CBraMod [ 5 ] | 200 | 0.808 [0.804, 0.812] | 0.803 | 0.738 | 0.739 |
| LaBraM [ 2 ] | 200 | 0.788 [0.784, 0.792] | 0.785 | 0.713 | 0.714 |
| Model | Dim | AUROC | PR-AUC | Bal. acc. | Macro F1 |
|---|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.866 [0.860, 0.873] | 0.446 | 0.787 | 0.620 |
| fine-tuned | — | 0.854 [0.847, 0.860] | 0.345 | 0.773 | 0.676 |
| EEGDM [ 9 ] | 2,560 | 0.874 [0.866, 0.881] | 0.527 | 0.801 | 0.642 |
| REVE [ 12 ] | 512 | 0.879 [0.873, 0.886] | 0.463 | 0.798 | 0.611 |
| CBraMod [ 5 ] | 200 | 0.855 [0.847, 0.862] | 0.455 | 0.776 | 0.586 |
| LaBraM [ 2 ] | 200 | 0.845 [0.837, 0.851] | 0.416 | 0.765 | 0.589 |
| Model | Dim | Bal. acc. | Cohen | Weighted F1 |
|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.542 [0.529, 0.554] | 0.465 | 0.719 |
| fine-tuned | — | 0.597 [0.588, 0.605] | 0.635 | 0.814 |
| EEGDM [ 9 ] | 2,560 | 0.647 [0.638, 0.657] | 0.568 | 0.783 |
| REVE [ 12 ] | 512 | 0.565 [0.553, 0.577] | 0.515 | 0.753 |
| CBraMod [ 5 ] | 200 | 0.466 [0.455, 0.477] | 0.346 | 0.635 |
| LaBraM [ 2 ] | 200 | 0.521 [0.510, 0.534] | 0.365 | 0.633 |
| Model | Dim | AUROC | PR-AUC | Accuracy | Weighted F1 | Macro F1 |
|---|---|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.679 [0.607, 0.751] | 0.675 | 0.640 | 0.638 | 0.638 |
| EEGDM [ 9 ] | 2,560 | 0.673 [0.599, 0.745] | 0.638 | 0.610 | 0.609 | 0.609 |
| REVE [ 12 ] ‡ | 512 | 0.671 [0.596, 0.748] | 0.674 | 0.605 | 0.605 | 0.605 |
| CBraMod [ 5 ] ‡ | 200 | 0.671 [0.591, 0.745] | 0.667 | 0.615 | 0.615 | 0.615 |
| BIOT [ 4 ] | 256 | 0.675 [0.605, 0.748] | 0.633 | 0.630 | 0.630 | 0.630 |
| EEGMamba [ 6 ] ‡ | 200 | 0.694 [0.619, 0.766] | 0.701 | 0.625 | 0.625 | 0.625 |
| Model | Dim | AUROC | PR-AUC | Accuracy | Weighted F1 | Macro F1 |
|---|---|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.882 [0.847, 0.914] | 0.306 | 0.979 | 0.984 | 0.622 |
| EEGDM [ 9 ] | 2,560 | 0.915 [0.889, 0.938] | 0.248 | 0.916 | 0.950 | 0.534 |
| REVE [ 12 ] | 512 | 0.906 [0.872, 0.937] | 0.460 | 0.946 | 0.966 | 0.562 |
| CBraMod [ 5 ] | 200 | 0.850 [0.806, 0.888] | 0.189 | 0.872 | 0.925 | 0.502 |
| LaBraM [ 2 ] | 200 | 0.797 [0.756, 0.836] | 0.056 | 0.833 | 0.903 | 0.478 |
| BIOT [ 4 ] | 256 | 0.707 [0.657, 0.755] | 0.020 | 0.780 | 0.870 | 0.455 |
| Model | Dim | AUROC | PR-AUC | Bal. acc. | Macro F1 |
|---|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.999 [0.996, 1.000] | 0.998 | 0.994 | 0.985 |
| single electrode only | 10,240 | 0.995 [0.981, 1.000] | 0.983 | 0.944 | 0.913 |
| EEGDM [ 9 ] | 2,560 | 0.994 [0.982, 1.000] | 0.975 | 0.963 | 0.915 |
| REVE [ 12 ] | 512 | 0.998 [0.991, 1.000] | 0.992 | 0.994 | 0.985 |
| CBraMod [ 5 ] | 200 | 0.996 [0.986, 1.000] | 0.985 | 0.956 | 0.903 |
| LaBraM [ 2 ] | 200 | 0.995 [0.983, 1.000] | 0.982 | 0.950 | 0.890 |
| Model | Dim | AUROC | PR-AUC | Bal. acc. | Macro F1 |
|---|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.942 [0.929, 0.954] | 0.951 | 0.832 | 0.831 |
| fine-tuned | — | 0.872 [0.851, 0.893] | 0.792 | 0.821 | 0.821 |
| EEGDM [ 9 ] | 2,560 | 0.946 [0.935, 0.958] | 0.945 | 0.857 | 0.856 |
| REVE [ 12 ] | 512 | 0.960 [0.951, 0.968] | 0.962 | 0.842 | 0.841 |
| CBraMod [ 5 ] | 200 | 0.860 [0.838, 0.883] | 0.810 | 0.804 | 0.803 |
| LaBraM [ 2 ] | 200 | 0.904 [0.887, 0.922] | 0.886 | 0.838 | 0.837 |
| Model | Dim | Bal. acc. | Cohen | Weighted F1 |
|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.442 [0.419, 0.463] | 0.256 | 0.442 |
| fine-tuned | — | 0.596 [0.574, 0.618] | 0.461 | 0.599 |
| EEGDM [ 9 ] | 2,560 | 0.347 [0.325, 0.367] | 0.130 | 0.338 |
| REVE [ 12 ] | 512 | 0.371 [0.348, 0.393] | 0.161 | 0.370 |
| CBraMod [ 5 ] | 200 | 0.308 [0.287, 0.330] | 0.078 | 0.306 |
| LaBraM [ 2 ] | 200 | 0.302 [0.280, 0.324] | 0.070 | 0.301 |
| Model | Dim | Bal. acc. | Cohen | Weighted F1 |
|---|---|---|---|---|
| NOMAD-EEG (ours) | 10,240 | 0.757 [0.748, 0.766] | 0.680 | 0.770 |
| fine-tuned | — | 0.758 [0.748, 0.768] | 0.694 | 0.784 |
| EEGDM [ 9 ] | 2,560 | 0.779 [0.770, 0.788] | 0.718 | 0.802 |
| REVE [ 12 ] | 512 | 0.760 [0.750, 0.770] | 0.675 | 0.771 |
| CBraMod [ 5 ] | 200 | 0.725 [0.715, 0.735] | 0.639 | 0.743 |
| LaBraM [ 2 ] | 200 | 0.738 [0.729, 0.747] | 0.676 | 0.770 |
| NOMAD-EEG | Bal. acc. | Cohen | Weighted F1 |
|---|---|---|---|
| frozen linear probe | 0.315 [0.310, 0.319] | 0.136 | 0.302 |
| fine-tuned | 0.384 [0.380, 0.389] | 0.231 | 0.392 |
| Model | Channels read | AUROC | Bal. acc. | PR-AUC | Object acc. (1/3/10 runs) | Per-subject AUROC range |
|---|---|---|---|---|---|---|
| NOMAD-EEG | 8 | 0.718 [0.695, 0.739] | 0.660 | 0.289 | 32.6 / 51.5 / 75.5% | 0.652–0.805 |
| EEGDM | 4 bipolar | 0.667 [0.631, 0.699] | 0.624 | 0.227 | 27.8 / 42.4 / 61.2% | 0.540–0.805 |
| REVE | 8 | 0.651 [0.626, 0.675] | 0.612 | 0.209 | 24.6 / 37.9 / 57.5% | 0.563–0.752 |
| BIOT | 2 bipolar | 0.530 [0.521, 0.539] | 0.520 | 0.136 | 14.5 / 17.2 / 21.8% | 0.503–0.571 |
| DiffEEG | 6 | 0.522 [0.508, 0.534] | 0.517 | 0.133 | 13.9 / 15.1 / 19.4% | 0.457–0.556 |
| Model | Window AUROC | Participant AUROC | Participant bal. acc. |
|---|---|---|---|
| NOMAD-EEG (ours) | 0.679 [0.609, 0.754] | 0.684 [0.590, 0.777] | 0.620 [0.542, 0.706] |
| EEGDM [ 9 ] | 0.783 [0.709, 0.845] | 0.795 [0.714, 0.868] | 0.702 [0.618, 0.782] |
| REVE [ 12 ] | 0.653 [0.571, 0.733] | 0.643 [0.547, 0.740] | 0.626 [0.543, 0.705] |
| BIOT [ 4 ] | 0.659 [0.583, 0.730] | 0.681 [0.593, 0.771] | 0.672 [0.593, 0.748] |
| DiffEEG [ 8 ] | 0.634 [0.585, 0.683] | 0.713 [0.623, 0.794] | 0.672 [0.587, 0.751] |
| Dataset | Setting | Metric | Pre-trained | Random init. | |
|---|---|---|---|---|---|
| TUEV | linear probe | Bal. acc. | 0.542 [0.529, 0.554] | 0.434 [0.422, 0.446] | +0.107 |
| TUEV | fine-tuned | Bal. acc. | 0.597 [0.588, 0.605] | 0.465 [0.455, 0.474] | +0.132 |
| TUAB | linear probe | AUROC | 0.838 [0.834, 0.842] | 0.798 [0.794, 0.801] | +0.040 |
| Siena | linear probe | AUROC | 0.882 [0.847, 0.914] | 0.892 [0.858, 0.924] | -0.010 |
| Siena | linear probe | Macro F1 | 0.622 [0.596, 0.646] | 0.551 [0.538, 0.563] | +0.071 |
| Siena | linear probe | PR-AUC | 0.306 [0.221, 0.392] | 0.192 [0.134, 0.262] | +0.114 |
| Dataset | Metric | Diffusion | Flow | Flow diffusion |
|---|---|---|---|---|
| TUEV | Bal. acc. | 0.542 | 0.486 | -0.055 [-0.067, -0.044] |
| TUAB | AUROC | 0.838 | 0.827 | -0.011 [-0.013, -0.008] |
| TUAB | Bal. acc. | 0.770 | 0.762 | -0.008 [-0.011, -0.004] |
| TUSZ | AUROC | 0.866 | 0.870 | +0.004 [-0.002, 0.010] |
| TUSZ | Bal. acc. | 0.787 | 0.798 | +0.011 [0.003, 0.018] |
| Siena | AUROC | 0.882 | 0.866 | -0.016 [-0.037, 0.004] |
| Dataset | Metric | In Large | Base | Large | Large |
|---|---|---|---|---|---|
| pre-training | step 27,000 | step 51,000 | |||
| Bonn | AUROC | no | 0.999 [0.996, 1.000] | 0.999 [0.994, 1.000] | 1.000 [1.000, 1.000] |
| TUSZ | AUROC | training patients | 0.866 [0.860, 0.873] | 0.878 [0.872, 0.884] | 0.856 [0.849, 0.862] |
| TUAB | AUROC | training patients | 0.838 [0.834, 0.842] | 0.828 [0.824, 0.831] | 0.837 [0.834, 0.841] |
| Siena | AUROC | no | 0.882 [0.847, 0.914] | 0.867 [0.822, 0.906] | 0.867 [0.823, 0.907] |
| Mumtaz | AUROC | no | 0.942 [0.929, 0.954] | 0.913 [0.895, 0.929] | 0.913 [0.894, 0.929] |
Electroencephalography
Electroencephalography (EEG) studies brain-generated electrical activity to understand cognition and support diagnosis, monitoring, and brain-computer interfaces.
See all 182 papers