# Nlb21 Eval

> Evaluates latent variable models for their ability to infer neural population dynamics and rates from spiking data. It probes model fidelity in predicting held-out spiking activity, decoding behavioral variables, and capturing autonomous forward dynamics without relying on external labels. Use when the user wants to benchmark on MC_Maze, MC_Maze-L, MC_Maze-M, MC_Maze-S, MC_RTT, Area2_Bump, DMFC_RSG, or asks about evaluating this task. Reports Co-smoothing bps.

- Skill: `qhjqhj00/nlb21-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/nlb21-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/nlb21-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/nlb21-eval

---


# nlb21-eval

> Neural Latents Benchmark '21: Evaluating latent variable models of neural population activity — Pei et al. (2021) (arXiv:2109.04463, 2021)

## What this evaluates

Evaluates latent variable models for their ability to infer neural population dynamics and rates from spiking data. It probes model fidelity in predicting held-out spiking activity, decoding behavioral variables, and capturing autonomous forward dynamics without relying on external labels.

## Datasets

- **MC_Maze** — total ?; splits: full (-1); repo https://github.com/neurallatents/nlb_tools
- **MC_Maze-L** — total ?; splits: full (-1); repo https://github.com/neurallatents/nlb_tools
- **MC_Maze-M** — total ?; splits: full (-1); repo https://github.com/neurallatents/nlb_tools
- **MC_Maze-S** — total ?; splits: full (-1); repo https://github.com/neurallatents/nlb_tools
- **MC_RTT** — total ?; splits: full (-1); repo https://github.com/neurallatents/nlb_tools
- **Area2_Bump** — total ?; splits: full (-1); repo https://github.com/neurallatents/nlb_tools
- **DMFC_RSG** — total ?; splits: full (-1); repo https://github.com/neurallatents/nlb_tools

## Metrics

- `Co-smoothing bps` **(primary)** — range: other
  - Measures the improvement in log-likelihood of held-out spiking activity when using the model's inferred rates compared to a null model, normalized per spike. Reported in bits/spike.
- `Behavior decoding` — range: [0, 1]
  - Performance of linear decoding of hand velocities or behavioral variables based on inferred neural rates.
- `PSTH R^2` — range: [0, 1]
  - Coefficient of determination between inferred single-trial rates and peri-stimulus time histogram (PSTH) averages across repeated conditions.
- `Forward pred bps` — range: other
  - Bits per spike measuring the model's ability to predict future spiking activity using its learned autonomous dynamics.

## Input / output format

**Input**: Neural population spiking activity recorded from specific brain regions (e.g., motor cortex, area 2, DMFC) across multiple trials and conditions.

**Output**: Inferred neural firing rates/dynamics and predicted spiking activity for held-out trials.

## Scoring recipe

```python
def compute_co_smoothing_bps(observed_spikes, predicted_rates, null_rates):
    # Calculate log-likelihood of observed spikes under predicted rates
    ll_model = sum(observed_spikes * log(predicted_rates) - predicted_rates)
    # Calculate log-likelihood under null (average firing rate)
    ll_null = sum(observed_spikes * log(null_rates) - null_rates)
    # Convert to bits/spike
    bits_per_spike = (ll_model - ll_null) / (log(2) * sum(observed_spikes))
    return bits_per_spike

# Report mean ± SEM across datasets/trials
```

## Common pitfalls

- Absolute co-smoothing scores are not easily comparable across datasets due to varying neuron counts and firing rates.
- Unsupervised co-smoothing and supervised behavioral decoding can conflict; post-processing (e.g., smoothing) may improve decoding while decreasing co-smoothing scores.

## Evidence (verbatim from paper)

> We report co-smoothing bits/spike ± standard error of the mean across the datasets in NLB. While exact rankings and performance gaps vary per dataset, more expressive deep neural networks tend to perform the best. Note that absolute co-smoothing performance is not easily compared across datasets.

## Citation

```bibtex
@misc{pei2021nlb21,
  title={Neural Latents Benchmark '21: Evaluating latent variable models of neural population activity},
  author={Pei et al. (2021)},
  year={2021},
  note={arXiv:2109.04463}
}
```

- arXiv: 2109.04463

